您的位置:时时app平台注册网站 > 彩世界网址 > Linux系统文件的权能,Linux系统文件权限

Linux系统文件的权能,Linux系统文件权限

2019-11-03 08:53

1.suid冒险位:只针对二进制可执行文件,文件内记录的程序产生的进程的所有人为文件所有人和进程发起人的身份无关。所有人执行位变为S 设定方式:1)chmod  u s设定,如下图  2)chmod  4xxx设定,如下图 2.sgid强制位,对文件:只针对二进制可执行文件,任何人运行二进制文件程序时,程序产生的进程的所有组都是文件的所有组和程序发起人组的身份无关。对目录:当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中和文件建立者所在的组无关。所有组执行位变为S 设定方式:1)chmod g s设定,如下图 2)chmod 2xxx设定,如下图 示例如下:在student用户下在目录中touch文件他的所有人 和所有组都为student,此时在root下发起sgid强制命令,再切换到student用户下建立文件发现他的所有组为root,即验证,如下图 3.sticky ##粘制位:只针对与目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除。其他人的执行位显示t 设定方式:1)chmod o t设定,如下图: 2)chmod 1xxx设定,如下图: 示例如下:root用户下执行此命令,切换到student用户下,其没有权限删除root建立的文件,如下图 六、文件的访问权限控制 可以直接让某个用户对某个文件有你需要的权限 1.例如: setfacl -m u:student:rwx  /mnt/file(让student用户对/mnt/file的有rwx的权限);getfacl  /mnt/file查看权限列表,操作执行如下图: 2.列出文件属性时,如果一个文件在读写执行部分后有加号,即代表其有特殊权限,可getfacl查看,如果要关闭这个权限,只需要setfacl -b 文件名即可,如下图:

(3)新建文件和目录的默认权限

Linux云自动化运维第四课

一、vim

 

1.vim光标移动

1)在命令模式下

:数字  ###移动到指定的行

G  ###文件最后一行

gg  ###文件第一行

2)在插入模式下

i  ###光标所在位置插入

I  ###光标所在行行首

a  ###光标所在字符的下一个位置

A  ###光标所在行行尾

o  ###光标所在行下一行

O  ###光标所在行上一行

s  ###删除光标所在字符插入

S  ###删除光标所在行插入

 

2.vim的退出模式

:q  ###当用vim打开文件但没有对字符作任何操作时可直接退出

:q!  ###当用vim打开文件并对字符作操作,放弃所有操作退出

:wq  ###保存退出

:wq!  ###强行保存退出,对超级用户及文件所有人生效

 

3.vim手册

vimtutor  ###vim的手册

:q  ###退出vimtutor

 

二、gedit

 

ctrl n  ###在gedit中打开一个新的tab

ctrl s ###保存文件

ctrl o ###打开文件

ctrl x ###剪切字符

ctrl v ###粘贴字符

ctrl c ###复制字符

yelp help:gedit  ###gedit的图形手册

 

三、用户理解

 

限制,共享

用户就是系统使用者的身份

在系统中用户存储为若干字符串 若干个系统配置文件

用户信息涉及到的系统配置文件:

/etc/passwd ###用户信息

用户:密码:uid:gid:说明:家目录:用户使用的shell

/etc/shadow ###用户认证信息

用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日

/etc/group ###组信息

组名称:组密码:组id:附加组成员

/etc/gshadow ###组认证信息

/home/username ###用户家目录

/etc/skel/.* ###用户骨架文件

 

四、用户管理

 

1.用户建立

useradd 参数 用户名称

-u ###指定用户uid

-g ###指定用户初始组信息,这个组必须已经存在

-G ###指定附加组,这个组必须存在

-c ###用户说明

-d ###用户家目录

-s ###用户所使用的shell,/etc/shells记录了用户能使用shell的名字

eg:[[email protected] Desktop]# useradd westos  ###建立新用户,参数皆为默认

[[email protected] Desktop]# useradd -u 6666 westos  ###建立新用户,指定用户uid为6666

[[email protected] Desktop]# groupadd -g 9999 westo  ###建立组,指定组gid为9999

[[email protected] Desktop]# useradd -g 9999 westos  ###建立新用户,指定组gid为9999

[[email protected] Desktop]# useradd -G 21 westos  ###建立新用户,指定附加组id为21

[[email protected] Desktop]# useradd -c "westos user" westos  ###建立新用户,指定用户说明为westos user

[[email protected] Desktop]# useradd -d /home/linux westos  ###建立新用户,指定用户家目录为/home/linux/

[[email protected] Desktop]# useradd -s /bin/sh westos  ###建立新用户,指定用户所使用的shell

ps:[[email protected] Desktop]# userdel -r westos  ###删除用户westos,新建用户存在时,先删除用户,再新建

 

2.用户删除

userdel -r 用户名称  ###-r表示删除用户信息及用户的系统配置

eg:[[email protected] Desktop]# userdel -r westos  ###删除westos用户信息及其westos的系统配置

 

3.组的建立

groupadd -g 组名称 ###建立组

groupdel 组名字  ###删除组

ps:做以上实验的监控命令:

[[email protected] Desktop]# watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'

eg:[[email protected] Desktop]# groupadd linux  ###建立组linux,参数皆为默认

[[email protected] Desktop]# groupadd -g 8888 westos  ###建立名称为westos,id为8888的组

[[email protected] Desktop]# groupdel westos  ###删除组westos

 

4.用户id信息查看

id 参数 用户

-u ###用户uid

-g ###用户初始组id

-G ###用户所有所在组id

-n ###显示名称而不是id数字

-a ###显示所有信息

eg:[[email protected] Desktop]# id -a westos  ###查看westos的所有信息

[[email protected] Desktop]# id -u westos  ###查看westos的用户uid

[[email protected] Desktop]# id -g westos  ###查看westos的用户初始组gid

[[email protected] Desktop]# id -G westos  ###查看westos所有所在组id

[[email protected] Desktop]# id -un westos  ###查看westos的用户名称

[[email protected] Desktop]# id -gn westos  ###查看westos的初始组名称

[[email protected] Desktop]# id -Gn westos  ###查看westos的所有所在组的名称

 

5.用户信息更改

usermod 参数 用户

-l ###更改用户名称

-u ###更改uid

-g ###更改gid

-G ###更改附加组

-aG ###添加附加组

-c ###更改说明

-d ###更改家目录指定及家目录名称

-s ###更改shell

-L ###冻结帐号

-U ###解锁

eg:[[email protected] Desktop]# usermod -l linux westos  ###将用户名称westos改为linux

[[email protected] Desktop]# usermod -u 1111 linux  ###将用户uid改为1111

[[email protected] Desktop]# usermod -g 72 linux  ###更改用户组id,组id要已存在的

[[email protected] Desktop]# usermod -G wheel linux  ###更改用户的附加组为wheel,wheel要已存在

[[email protected] Desktop]# usermod -aG 21 linux  ###在原有附加组的基础上,添加id为21的附加组

[[email protected] Desktop]# usermod -c "linux user" linux  ###更改linux用户的说明

[[email protected] Desktop]# usermod -d /home/linux linux  ###更改linux用户家目录指定

[[email protected] Desktop]# usermod -md /home/linux linux  ###更改linux用户家目录指定及家目录名称

[[email protected] Desktop]# usermod -s /bin/shell  ###更改shell

 

五、用户权力下放

 

1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户

下放权力配置文件:/etc/sudoers

 

2.下放权力的方法

*)超级用户执行visudo进入编辑/etc/sudoers模式

*)格式:

获得权限用户 主机名称=(获得到的用户身份) 命令

test desktop0.example.com=(root) /usr/sbin/useradd

test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd

eg:[[email protected] Desktop]# visudo-->进入/etc/sudoers编辑模式-->kiosk foundation42.ilt.example.com=(root) /usr/sbin/useradd-->保存退出

 

3.执行下放权限命令

sudo 命令  ###如果第一次执行sudo需要输入当前用户密码

ps:在/etc/sudoers中如果设置如下:kiosk foundation42.ilt.example.com=(root) NOPASSWD: /usr/sbin/useradd,表示用户调用sudo命令的时候不需要自己密码

eg:[[email protected] Desktop]$ sudo /usr/sbin/useradd linux  ###执行下放权限命令

 

六、用户认证信息的控制

 

chage 参数 用户

-d      ###用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码

-m ###最短有效期

-M ###最长有效期

-W ###警告期

-I ###用户非活跃天数

-E ###帐号到期日格式 -E "YYYY-MM-DD"

eg:[[email protected] Desktop]# watch -n 1 tail -n 5 /etc/shadow  ###实时监控密码信息变化

[[email protected] Desktop]# chage -d 0 student  ###用户登陆系统后必须修改自己的密码

[[email protected] Desktop]# chage -m 1 student  ###最短有效期为1天,至少1天后才能修改密码

[[email protected] Desktop]# chage -M 30 student  ###最长有效期为30天,必须在30天内修改密码

[[email protected] Desktop]# chage -W 2 student  ###警告期2天,密码到期的前2天,系统发出警告,提醒修改密码

[[email protected] Desktop]# chage -I 1 student  ###用户非活跃天数1天,30天之后多给1天,如果还没修改密码,系统直接冻结账户

[[email protected] Desktop]# chage -E "2017-04-21" student  ###设定账户到期格式

 

七、文件属性的查看

 

ls -l filename

-|rw-r--r--.|1| root| root|   46 |Oct  1 05:03 |filename

— —————————  —  ————  ————    ——  ————————————  ————————

1    2      3    4      5      6      7             8

 

1."-":文件类型

-  ###普通文件

d  ###目录

c  ###字符设备

s  ###套接字

p  ###管道

b  ###快设备

l  ###连接

eg:[[email protected] Desktop]$ ls -l /etc/passwd

-rw-r--r--. 1 root root 2270 Mar 20 00:45 /etc/passwd  ###普通文件

[[email protected] Desktop]$ ls -ld /etc/

drwxr-xr-x. 134 root root 8192 Mar 23 09:04 /etc/  ###目录

 

2."rw-r--r--":文件读写权限

rw-|r--|r--

 u   g   o

 

u:所有人的权限

g:所有组的权限

o:其他人的权限

 

3."1":

对文件:文件内容被系统记录的次数

对目录:目录中文件属性的字节数

eg:[[email protected] Desktop]$ ls -l /etc/passwd

-rw-r--r--. 1 root root 2270 Mar 20 00:45 /etc/passwd  ###文件内容被系统记录1次,1次可删除

[[email protected] Desktop]$ ls -ld /etc/

drwxr-xr-x. 134 root root 8192 Mar 23 09:04 /etc/  ###/etc目录中文件属性的字节数

 

4."root":文件所有人

eg:[[email protected] Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件所有人是用户kiosk

 

5."root":文件所有组

eg:[[email protected] Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件所有组是组kiosk

 

6."46":文件内容的大小

eg:[[email protected] Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件是空文件,文件内容大小为0

 

7."Oct  1 05:03":文件最后一次被修改的时间

eg:[[email protected] Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件最后一次修改时间是03-23 10:12

 

8."filename":文件名字

eg:[[email protected] Desktop]$ ls -l file

-rw-rw-r-- 1 kiosk kiosk 0 Mar 23 10:12 file  ###文件名称为file

 

八、文件所有人所有组的管理

 

chown  username file|dir ###更改文件的所有人

chown  username:groupname file|dir ###更改所有人所有组

chown -R username dir ###更改目录本身及里面所有内容的所有人

chgrp -R groupname dir ###更改目录本身及里面所有内容的所有组

 

eg:[[email protected] Desktop]# watch -n 1 ls -lR /mnt  ###实时监控/mnt中文件和目录的信息变化

[[email protected] Desktop]# chown student /mnt/file  ###将file文件的所有人更改为student

[[email protected] Desktop]# chown student.wheel /mnt/dir ###将dir目录的所有人更改为student,所有组更改为wheel

[[email protected] Desktop]# chown student:wheel /mnt/dir  ###和上条命令效果相同

[[email protected] Desktop]# chown -R student /mnt/dir  ###更改dir目录本身及里面所有内容的所有人为student

[[email protected] Desktop]# chgrp -R wheel /mnt/dir  ###更改dir目录本身及里面所有内容的所有组为wheel

 

九、文件普通权限

 

rw-|r--|r--

 u   g   o

u:文件所有人对文件可以读写

g:文件组成员对文件可读

o:其他人对文件可读

u优先匹配,g次优先,o当u,g不匹配时匹配

 

1.r

对文件:可以查看文件中的字符

对目录:可以查看目录中文件的信息

 

2.w

对文件:可以更改文件内字符

对目录:可以在目录中添加删除文件

 

3.x

对文件:可以运行文件内记录的程序动作

对目录:可以进入目录中

 

4.字符方式修改该文件权限

chmod [-R] <u|g|o>< |-|=><r|w|x> file|dir

chmod u-x file1 ###file1拥有者去掉x权限

chmod g w file1 ###file1拥有组添加w权限

chmod u-x,g w file1 ###file1拥有者去掉x权,file1拥有组添加w权限

chmod ugo-r file2 ###file2的用户组其他人去掉r权限

chmod ug x,o-r file3 ###file3用户和组添加x权限,其他人去掉r权限

 

eg:[[email protected] Desktop]# watch -n 1 ls -lR /mnt  ###实时监控/mnt中文件和目录的信息变化

[[email protected] Desktop]# chmod u-x /mnt/dir  ###dir拥有着student去掉x权限,切换到student用户,无法进入目录

[[email protected] Desktop]# chmod g w /mnt/dir  ###dir拥有组wheel添加w权限,wheel组内其他用户拥有在dir目录内添加删除文件的权力

[[email protected] Desktop]# chmod u-x,g w /mnt/dir  ###和上两条命令效果相同

[[email protected] Desktop]# chmod ugo-r /mnt/dir  ###给dir目录的拥有者,用户组和其他人都去掉r权限,无法查看目录中文件的信息

[[email protected] Desktop]# chmod ug x,o-r /mnt/dir  ###dir目录的拥有者和用户组添加x权限,拥有者和用户组可进入目录,其他人去掉r权限,无法查看目录中文件的信息

 

5.数字方式修改该文件权限

在linux中:r=4,w=2,x=1

文件权限数字表示方式

rw-|r--|r--

 u   g   o

u=rw-=4 2 0=6

g=r--=4 0 0=4

o=r--=4 0 0=4

所以文件权限表示为644

7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---

eg:[[email protected] Desktop]# chmod 640 /mnt/file  ###file文件的拥有者对其可读可写,所有组对其可读,其他人对其什么也没法干

 

十、系统默认权限的设定

 

从系统存在角度来说,开放权力越大,系统存在意义越高

从系统安全角度来说,开放权力越少,系统安全性越高

所以系统设定新建文件或目录会去掉一些权限

设定方式

umask ###查看系统保留权限默认为022

umask 077 ###修改该系统保留权限为077,此设定为临时设定,只当前shell中生效

 

永久设定方式:

vim /etc/bashrc ###shell,进入编辑

 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

     umask 002 ###普通用户umask

 else

     umask 077       ###超级用户umask,修改为077

 fi

vim /etc/profile ###系统,进入编辑

 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

     umask 002 ###普通用户umask

 else

     umask 077    ###超级用户umask,修改为077

 fi

 

以上两个文件umask设定值必须保持一致

source /etc/bashrc

source /etc/profile

让设定立即生效

ps:修改umask之前,新建文件默认参数为644,拥有者可读可写,所有组和其他人仅可读。修改参数后,变为600,仅拥有者可读可写,所有组和其他人没有任何权限

 

十一、特殊权限

 

1.suid ###冒险位

只针对二进制可执行文件,

文件内记录的程序产生的进程的所有人为文件所有人

和进程发起人身份无关

 

设定方式:

chmod u s file

suid=4

chmod 4xxx file

 

2.sgid ###强制位

对文件:只针对二进制可执行文件,

任何人运行二进制文件

程序时程序产生的进程的所有组都是文件的所有组

和程序发起人组的身份无关

对目录:当目录有sgid权限后,目录中新建的所有文件的所有组

都自动归属到目录的所有组之中,和文件建立者所在的组无关

 

设定方式:

 

chmod g s file|dir

sgid=2

chmod 2xxx file|dir

 

3.sticky ###粘制位

t权限:

只针对与目录,当一个目录上有t权限,那么目录中的文件只能被所有人删除

 

设定方式:

chmod o t direcotry

t=1

chmod 1777 direcotry

 

 

四、系统默认权限设定

一.文件权限属性

(1) [root@pc root]# ls -l install.log

-rw-r--r-- 1 root root 26195 Dec 17 10:42 install.log

图片 1

image.png


(2) 文件属性操作

  • chown 设置文件的所有者:
    设置格式 'chown owner' 创建一个f1文件,它的所有者为root,通过chown 命令将f1 的所有者改为wangcai
![](https://upload-images.jianshu.io/upload_images/6851471-7f4609d274e58859.png)

image.png
  • chown也可以修改所属于组和所有者
    格式: chown owner:group file ——其中':'可以用'.'来代替,也可以':group file'只改变组
    创建一个f2文件,查看所有者和所属组,然后通过chown wangcai:sasles f2
    则将f2的属性改变

    图片 2

    image.png

chown -R 为递归: 'chown -R wang jerry/'
将jerry里的所有用户都改为wang用户

unit4-作业

 

1.新建用户组shengchan,caiwu,jishu

[[email protected] Desktop]# groupadd shengchan

[[email protected] Desktop]# groupadd caiwu

[[email protected]alhost Desktop]# groupadd jishu

 

2.新建用户要求如下:

*)tom是shengchan组的附加用户

*)harry是caiwu组的附加用户

*)leo是jishu组的附加用户

*)新建admin用户,此用户不属于以上提到的三个部门

[[email protected] Desktop]# useradd -G shengchan tom

[[email protected] Desktop]# useradd -G caiwu harry

[[email protected] Desktop]# useradd -G jishu leo

[[email protected] Desktop]# useradd admin

 

3.新建目录要求如下:

*)/pub目录为公共存储目录对所有用户可读可写可执行,但用户只能删除属于自己的文件

*)/sc目录为生产部存储目录,只能对生产部门人员可写,并且生产部人员所建立的文件都自动归属到shengchan组中

*)/cw目录为财务部存储目录,只能对财务部人员可写,并且财务部人员所建立的文件都自动归属到caiwu组中

*)admin用户能用touch工具在/sc目录和/cw目录中任意建立文件,但不能删除文件

[[email protected] Desktop]# mkdir /pub

[[email protected] Desktop]# chmod 777 /pub

[[email protected] Desktop]# chmod o t /pub

ps:上面两条命令可以合为一条[[email protected] Desktop]# chmod 1777 /pub

[[email protected] Desktop]# mkdir /sc

[[email protected] Desktop]# chgrp shengchan /sc

[[email protected] Desktop]# chmod 770 /sc

[[email protected] Desktop]# chmod g s /sc

ps:上面两条命令可以合为一条[[email protected] Desktop]# chmod 2770 /sc

[[email protected] Desktop]# mkdir /cw

[[email protected] Desktop]# chgrp caiwu /cw

[[email protected] Desktop]# chmod 770 /cw

[[email protected] Desktop]# chmod g s /cw

ps:上面两条命令可以合为一条[[email protected] Desktop]# chmod 2770 /cw

[[email protected] Desktop]# visudo-->进入编辑状态,添加-->

admin localhost=(root) NOPASSWD: /bin/touch

[[email protected] Desktop]# su - admin

[[email protected] ~]$ sudo /bin/touch /sc/file

 

4.设定普通用户新建文件权限为"r--r-----"

[[email protected] Desktop]# vim /etc/profile-->进入编辑状态-->

 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

 60     umask 002   ###修改为226

 61 else

 62     umask 022

 63 fi

[[email protected] Desktop]# vim /etc/bashrc-->进入编辑状态-->

 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

 71        umask 002  ###修改为226

 72     else

 73        umask 022

 74     fi

[[email protected] Desktop]# source /etc/profile

[[email protected] Desktop]# source /ect/bashrc

 

5.设定admin用户可以通过sudo自由建立新用户

[[email protected] Desktop]# visudo-->进入编辑状态,添加-->

admin localhost=(root) NOPASSWD: /usr/sbin/useradd

[[email protected] Desktop]# su - admin

[[email protected] ~]$ sudo /usr/sbin/useradd xyh

 

Linux云自动化运维第四课 一、 vim 1.vim光标移动 1)在命令模式下 :数字 ###移动到指定的行 G ###文件最...

一、文件的属性

如上图,ls列出文件的基本属性,共有八部分,其中 1.-代表文件类型(具体-代表普通文件,如果是d代表目录;c代表字符设备;s代表套接字;p代表管道;b代表块设备;1代表链接) 2.rw-r--r--代表了文件的读写执行权限。红线隔开三个一组 |rw-|r--|r--|第一组表示所有人的权限,第二组表示所有组的权限;第三组表示其他人的权限 。r表示都的权限(查看);w表示写的权限(添加删除);x表示执行的权限(进入目录)。 3.“1”对文件:文件内容被系统记录的次数。         对目录:目录中文件属性的字节数。 4.root表示文件的所有人(文件是谁的) 5.root表示文件所有组(文件是哪个组的) 6.“0”表示文件内容大小 7.Jan 3 02:46表示文件最后一次被修改的时间 8.file表示文件的名字

umask值 可以用来保留在创建文件权限

  • 初步算法: umask default=file666/dir/777

    文件的最大权限为666(u=rw- g=rw- o=rw-)'不能给文件赋予执行的权利,否则会有危险',所以文件最大权限为666——当umask为022时,那么新创建的文件应该为666-022=644 结果如图:

    图片 3

    image.png


    目录的最大权限为777(u=rwx g=rwx o=rwx)——同理,创建一个新的文件夹(dir5)应该为777-022=755 结果如图:

    图片 4

    image.png


    *但是如果umask为015时,按照初步算法的结果应该为:651(rw- r-x --x)但是结果如图所示:

    图片 5

    image.png


    所以这里引出了umask的作用:它真正的算法是从对应中将umask的指定权限去掉
    例如以上图为例:666——对应二进制是:110110110,uamsk:000001101

    通过对位去权限的的原则得出结果为:110110010和上图结果一样
    权限: 666-umask 如果所得结果某位存在执行(奇数)权限,则将其权限 1 ,结果为偶数则不变
    新建DIR权限: 777-umask
    非特权用户umask是 002 
    root的umask 是 022 
    umask: 查看 
    umask #: 设定 umask 002 
    umask –S 模式方式显示 u=rw g=r o=
    umask –p 输出可被调用 显示umask结果 可以用'umask -p >>.bashrc'来代替nano的作用
    全局设置: /etc/bashrc
    用户设置:~/.bashrc

  • 小练习

1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作?
答:用户对目录没有执行权限,意味着不能执行cd命令,也无法进入目录内,即使有读权限也无法进入,不能进入目录内查看文件列表,无法修改
2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无 法做哪些操作?
答:没有读权限就无法查看目录列表的内容,除非之前就知道目录列表中的文件名
3、当用户wangcai 对/testdir 目录无写权限时,该目录下的 只读文件file1是否可修改和删除? 
答:没有写的权限就不能执行创建或是删除目录,因为该目录下的文件只有只读的权限
4、当用户wangcai 对/testdir 目录有写和执行权限时,该目 录下的只读文件file1是否可修改和删除? 
答:当具有写和执行的权限时,就可以实现对只读文件删除,但是不能修改,可以改名
5、复制/etc/fstab文件到/var/tmp下,设置文件所有者为 wangcai读写权限,所属组为sysadmins组有读写权限,其他 人无权限 
答:首先 groupadd sysadmins 创建一个组,然后

图片 6

image.png

图片 7

image.png

6、误删除了用户wangcai的家目录,请重建并恢复该用户家 目录及相应的权限属性
答:
方法一

图片 8

image.png

方法二
cp -r /etc/skel /home/mage chown -R mage:mage /home/mage chmod 700 /home/mage

Linux云自动化运维第四课,linux云自动化

二、文件所有人所有组的管理

注意:普通用户也可以执行 charg命令,当普通通用户属于该组时就可以执行。

1.更改文件所有人:如下图,原所有人为root,更改命令后变为student 2.更改文件所有人和所有组: 3。更改目录和目录本身所有人:-R表示递归更改 . 4.更改目录及目录一下的所有组:chown变为chgrp . 三、文件的读写执行权限更改 1.上面提到文件的读(r)写(w)执行(x)分为三组,第一组表示所有人用u表示;第二组表示所有组用g表示;第三组表示其他人用o表示 2.chmod命令修改其权限 (1)字符方式修改,如下图,删除所有人的执行权利 (2)给所有组添加写权限 (3):删除所有人的读权限并删除所有组和其他人的执行权限 (4):数字方式修改。在linux系统中r 4,w=2,x=1,如下图为打开了所有权限命令

二.文件权限

(1)首先文件的权限主要针对三类对象进行定义

owner: 属主 u group: 属组 g other: 其他 o
三类对象的权限:
r:对文件有读的权限
w:对文件有写的权限
x:对文件有执行的的权限

  • 文件:
    r: 可以查看内容,确定文件类型
    w: 可修改其内容
    x: 可以把此文件提请内核启动为一个进程 ,决定是否可以执行,对root也有效果
![](https://upload-images.jianshu.io/upload_images/6851471-4291cda76fead268.png)

image.png



查看f2文件:我们可以看出,f2的用户'wangcai'的权限为'rw-'说明它具有读和写的功能  
所属组为'sasles'的权限为'rw-' 也具有读和写的权限
而其他用户只有写的权限
  • 目录:
    只有'r'权限: 可以使用ls查看此目录中文件列表 ,但是不能访问 ,也不能执行cd命令(删除和查看)
    只有'w'权限: 可在此目录中创建文件,也可删除此目录中的文件(但需要x权限才能生效)
    只有'x'权限: 不可以使用ls -l查看此目录中文件列表,但可以访问目录下的文件(前提知道文件名),也可以cd进入此目录——执行权力是个基本能力
  • 目录:
    X:只给目录x权限,对文件:如果文件中有x权限,就可以增加赋予'x'权限,如果文件没有'x'权限就不赋予该权限

(2)文件权限操作命令

  • chmod:修改权限
    修改模式: chmod who opt per file
    who: 代表有谁——u ,g ,o a(所有人)
    opt: 代表操作——' '(增加权限) '-'(减少权限) '='(赋予权限)
    per: 'r'权限 'w'权限 'x'权限

    图片 9

    image.png

chmod -R g rwX
/testdir:递归模式,对用户组增加读写执行权限,然后对/testdir目录下的文件递归赋予权限  
chmod 660 file :给文件赋予了u=rw, g=rw ,o=

五、特殊权限

**三. Linux文件系统上的特殊权限 **

- suid

含义:影响所有者的权限,用户可以继承程序所有者的功能,作用在所有者上
作用:作用在可执行的二进制程序,将当前运行着的身份切换成该程序所有者的身份,权限也为该所有者的权限,但suid不能作用在目录上

图片 10

image.png


权限设定模式:
chmod u s file
chmod u-s file
chmod 4777 file——'4'代表suid 就是给文件加上's'权限
s权限位在所有者的执行位上,当文件本身具有'x'权限时,增加's'位,则显示's',当文件本身没有执行权限时,增加's'权限则会显示'S'
需要注意的是:在某些执行程序中,如果加上's'权限,就意味着,任何发起者都继承了该文件的root权限,能够执行各种操作,这本身是不安全的,显示如如图
[root@centos7 ~]#ll /bin/nano
-rwxr-xr-x. 1 root root 205904 Jun 10 2014 /bin/nano
[root@centos7 ~]#chmod u s /bin/nano
[root@centos7 ~]#ll /bin/nano
-rwsr-xr-x. 1 root root 205904 Jun 10 2014 /bin/nano

- sgid

含义:影响所属组的权限,作用在所属组上
作用:作用在可执行的二进制程序上,继承运行程序所属组的权限
权限设定模式:
chmod g s file
chmod g-s file
原理类似suid
sgid也可以作用在目录上,对某目录有写权限的用户,在该目录下创建了一个新的文件,那么此文件就继承了该目录的属组
权限设定模式:
chmod g s dir
chmod g-s dir
chmod 2770 dir
权限位的映射在所属组的执行位上,有关大小写的问题与suid相同

- sticky

作用:只作用在目录上,对文件无效,只有所有者或是root能删除自己的文件
在传统意义上,只要是具有写权限的目录,那么通常任何用户可以删除该目录中的任何文件,无论该文件的权限或拥有权 ,所以加入sticky,来保护目录下的文件
权限设定:
chmod o t DIR
chmod o-t DIR
chmod 1770 DIR
权限位的映射在其他人的执行位上,有关大小写的问题与suid相同

图片 11

image.png

- 设定文件特定属性

(1)chattr i 不能删除,改名,更改 对文件起到保护作用

图片 12

image.png

执行 chattr -i 可以还原
chattr i shadow
[root@centos7 app]#lsattr shadow
----i----------- shadow
[root@centos7 app]#chattr -i shadow
[root@centos7 app]#lsattr shadow
---------------- shadow
[root@centos7 app]#lsattr f1
(2)chattr a 只能追加内容 
(3)lsattr 显示特定属性* ## ACL访问控制列表
作用:除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
ACL生效顺序:所有者,自定义用户,自定义组,其他人
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能 
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功 能,需手动增加 tune2fs –o acl /dev/sdb1 mount –o acl /dev/sdb1 /mnt/test

  • 设置ACL权限——setfacl
    setfacl -m u:wangcai:rwx file|directory ——对wangcai这个用户设置权限,可作用在文件上,也可以作用在目录上setfacl -Rm g:sales:rwX directory ——配合递归功能对sales组以及成员都设置了rwX权限,只作用在目录上,把'X'改为'x'就可以作用到文件上了
    [root@centos7 app]#setfacl -Rm u:wangcai:rwx /app
    [root@centos7 app]#ll /app
    total 8
    drwxrwsr-x 2 root sasles 25 Jul 25 10:34 dir
    drwxrwxr-x 3 root root 31 Jul 25 11:52 dir1
    -rw-rwxr-- 1 wangcai root 541 Jul 25 11:29 f1
    -r--rwx--- 1 root root 1978 Jul 25 10:43 shadow
    [root@centos7 app]#getfacl f1
    # file: f1
    # owner: wangcai
    # group: root
    user::rw-
    user:wangcai:rwx
    group::r--
    group:sasles:rw-
    mask::rwx
    other::r--
    [root@centos7 app]#getfacl dir1/dir2
    # file: dir1/dir2
    # owner: root
    # group: root
    user::rwx
    user:wangcai:rwx
    group::r-x
    mask::rwx
    other::r-x
    setfacl -M file.acl file|directory —— 调用作用
    [root@centos7 app]#touch acl.txt
    [root@centos7 app]#echo "u:wangcai:rwx" >acl.txt
    [root@centos7 app]#cat acl.txt
    u:wangcai:rwx
    [root@centos7 app]#stefacl -M acl.txt f1
    setfacl -M acl.txt f1
    [root@centos7 app]#getfacl f1
    # file: f1
    # owner: wangcai
    # group: root
    user::rw-
    user:wangcai:rwx
    group::r--
    group:sasles:rw-
    mask::rwx
    other::r--
    setfacl -m g:salesgroup:rw file| directory ——对这个组设置权限
    setfacl -m d:u:wang:rx directory ——对该目录下新创建的文件设置权限,不影响旧文件,只是针对目录有效
    setfacl -x u:wang file |directory ——删除wang用户和权限
    setfacl -X file.acl directory—— 删除权限
    setfacl -b directory——清空目录里的所有文件的acl权限
    setfacl -k dir 删除默认ACL权限 
    setfacl –b file1清除所有ACL权限 
    setfacl -m mask::rx file ——除了other和所有者不能限制,其他的都被mask限制,相当于设置了一个高压线,不能超过mask!
    [root@centos7 app]#setfacl -m mask::r f1
    [root@centos7 app]#getfacl f1
    file: f1
    owner: wangcai
    group: root
    user::rw-
    user:wangcai:rw- #effective:r--
    group::r--
    group:sasles:rw- #effective:r--
    mask::r--
    other::r--

  • 显示ACL权限——getfacl
    getfacl file |directory
    [root@centos7 app]#getfacl f1
    file: f1
    owner: wangcai
    group: root
    user::rw-
    user:wangcai:rw-
    group::r--
    group:sasles:rw-
    mask::rw-
    other::r--
    getfacl file1 | setfacl --set-file=- file2 复制file1 的acl权限给file2
    getfacl -R /tmp/dir1 > acl.txt ——通过递归方式将ACL权限给acl.txt
    setfacl -R -b /tmp/dir1 ——以递归方式,清空该目录下的acl权限
    setfacl -R --set-file=acl.txt /tmp/dir1 ——恢复/tmp/dir的acl权限
    setfacl --restore acl.txt ——还原acl.txt权限
    getfacl -R /tmp/dir1——将acl权限递归给dir1目录下的文件

1.查看方式:umask命令,如下图,可以看出系统默认权限为022 (2)修改方式 1).暂时修改方式,只在当前shell中有用,umask直接加想设置的权限 2).永久修改,在vim/etc/bashrc和vim/etc/profile下找到umask的信息,将其直接修改两者必须修改一致,如下图: 如上图,我都修改为077,修改完毕后需要输入source /etc/bashrc和source /etc/profile才能成功,如下图 现在直接创建文件,他的读写执行属性已经生效,如下图:(所有人部分为6因为内核会拿走执行权利)

注意: 普通用户无法执行 'chown'命令

  • chgrp 设置文件的属组信息
    格式: charg libai f2——将f2文件的所属组改为libai(前提libai这个组存在)
    charg -R:递归

Linux系统文件的权限,Linux系统文件权限

监控文件属性的命令:watch  -n  1  ls  -lR /mnt  如下图

=

本文由时时app平台注册网站发布于彩世界网址,转载请注明出处:Linux系统文件的权能,Linux系统文件权限

关键词: