Linux权限
Linux权限管理
基本权限 ugo
基本权限9个字节组成,分成三段
rw-r--r--
基本权限对于root无效的 x
-
对于文件来说,用户分为三类
u --user 文件的拥有者
g --group 文件的所属组
o --other 其他人
a --all 所有 -
权限的分类
r --read 读权限
w --write 写权限
x --execute 执行权限-无权限
-
文件:
r 读 查看文件的内容
w 写 编辑文件的内容
x 执行 执行文件
-
目录:
r 读 查看目录的内容
w 写 修改目录的内容
x 进入目录
-
-
chmod 修改或设置文件的权限
-R 递归修改
-
数字权限
权限对应的数字 r 4 w 2 x 1 - 0 # chmod 664 文件名 -
字母表示:u g o a
-
等值权限 =
# chmod o=r passwd -
增值权限 +
# chmod o+w pass -
取消权限
# chmod o-w pass # chmod u-x,g+w,o+r pass# ls -l /priv/passwd -rw-r--r-- 1 root root 2625 3月 20 11:45 /priv/passwd -:文件类型 普通文件 rw-r--r--:文件的权限 1:链接数 root:文件的所有者,即属主 root:文件的所属组,即属组 2625:文件的大小,单位是Byte 字节 3月 20 11:45:文件的最后修改时间 /priv/passwd:文件名
-
-
修改文件的属主属组
chown ---change owner 修改文件的所有者和所属组的命令
-
修改文件的所有者和所属组
# chown u1 passwd //只修改文件的所有者 # ll -rw-r--r-- 1 u1 root 2625 3月 20 15:21 passwd # chown :u2 passwd //只修改文件的所属组 # ll -rw-r--r-- 1 u1 u2 2625 3月 20 15:21 passwd # chown u2.u1 passwd //同时修改文件的所有者和所属组 # ll -rw-r--r-- 1 u2 u1 2625 3月 20 15:21 passwd -
修改目录的所有者和所属组 同修改文件的所有者和所属组一样
注意:修改目录的所有者和所属组(只会修改目录本身,对它里面的文件或目录无影响)
# chown -R .jim /a -R 递归修改目录的所有者和所属组,会同时作用于目录里面的所有文件及目录
高级权限(acl umask suid sgid sticky attr)
umask
-
umask:决定一个用户创建文件和目录的默认权限
root
创建目录的默认权限 755
创建文件的默认权限 644
普通
创建目录的默认权限 775
创建文件的默认权限 664
目录的最大权限777
文件的最大权限666
用户创建文件的默认权限=文件的最大权限-umask
用户创建目录的默认权限=目录的最大权限-uamsk777 rwxrwxrwx 666 rw-rw-rw- 031 ----wx--x 031 ----wx--x ---------------------------- --------------------------------- 746 rwxr--rw- 646 rw-r--rw- -
查看用户umask
# umask [jim@server tmp]$ umask 0002 root@server tmp]# umask 0022 -
修改用户的umask 只对当前终端生效
# umask 031 # umask 0031
特殊权限
特殊权限实现的原理
当做某些特殊操作时,能够临时获得最高权限,当操作完成,权限被收回。
-
suid ----对二进制可执行命令设置,当用户该执行命令时,会临时获得这个命令的所有者的权限
-
添加权限:
# chmod u+s 二进制可执行命令 0755 # chmod 4755 二进制可执行命令 -
取消权限:
# chmod u-s 二进制可执行命令设置该权限后,u的x位-->s
# ls -l /usr/bin/passwd rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
-
-
sgid ----对二进制可执行命令设置,当用户该执行命令时,会临时获得这个命令的所属组的权限
---- 对目录设置,那么所有用户在该目录下创建文件和目录的所属组会继承该目录的所属组-
添加权限:
# chmod g+s 目录 # chmod 2777 二进制可执行命令 -
取消权限:
# chmod g-s 目录设置该权限后,g的x位-->s
# ls -ld /tmp/test drwxrwsrwx 2 root jim 6 3月 21 10:05 test
-
-
sticky ----粘贴位 一般作用于所有人都有全部权限的目录上,用来限制用户只能删除自己的文件,不能够删除其他用户的文件(root用户除外)
-
添加权限:
# chmod o+t 目录 # chmod 1777 二进制可执行命令 -
取消权限:
# chmod o-t 目录设置该权限后,o的x位-->t
# ls -ld /tmp/test drwxrwxrwt 2 root jim 6 3月 21 10:05 test
-
ACL
ACL (Access Control List) 访问控制列表,在ugo的权限中,两个用户对于文件来说,都是other,但是想要不同对待,ACL主要是针对单一用户、单一文件或目录对rwx权限进行细分,可以针对用户、群组还有umask进行设置
setfacl 设置文件的访问控制列表
getfacl 查看文件的访问控制列表
-
为用户添加访问控制
setfacl -m u:用户名:权限 file ...
# cp /etc/pass /tmp 例:u1用户对文件能读写,u2用户对文件只读,jim用户对文件没有任何权限 # cd /tmp # setfacl -m u:u1:rw pass # ls -l pass //设置acl权限后,使用ls -l查看文件,权限部分会有一个+符号 -rw-rw-r--+ 1 root root 2558 3月 21 11:06 pass # getfacl pass # file: pass # owner: root # group: root user::rw- user:u1:rw- group::r-- mask::rw- other::r-- # setfacl -m u:jim:- pass # getfacl pass # file: pass # owner: root # group: root user::rw- user:jim:--- user:u1:rw- group::r-- mask::rw- other::r-- -
移除单个用户的访问控制列表
例:移除jim的acl
# setfacl -x u:jim pass # getfacl pass # file: pass # owner: root # group: root user::rw- user:u1:rw- group::r-- mask::rw- other::r-- -
移除全部用户的访问控制列表
# setfacl -m u:u3:rw pass # getfacl pass # file: pass # owner: root # group: root user::rw- user:u3:rw- user:u1:rw- group::r-- mask::rw- other::r-- # setfacl -b pass # getfacl pass # file: pass # owner: root # group: root user::rw- group::r-- other::r-- -
为用户组设置访问控制列表
setfacl -m g:组名:权限 file ...
例:it1组成员对文件有读写权限,it2组对文件没有任何权限
# setfacl -m g:it1:rw pass # setfacl -m g:it2:- pass -
设置默认权限
对目录设置默认ACL,在目录内创建的文件会继承目录的ACL权限
setfacl -m d:u:用户名:权限 dirname ...
setfacl -d -m u:用户名:权限 dirname ...
setfacl -m d:g:组名:权限 dirname ...用户真实的权限是所设置的权限与掩码相与的结果
隐藏权限
有些文件只想让用户向里面追加内容,不希望修改原内容,或者有些文件不希望任何人修改(包括root用户)
lsattr :查看
chattr :修改
#man chattr
a: append only (a) 只追加 可以查看内容追加内容其他操作都不可以做
i:immutable(i) 免疫的,不能修改 除了查看内容其他操作都不可以做
#chattr +a pass
#rm -rf pass
rm: 无法删除"pass": 不允许的操作
#echo "123456789" >> pass //只能使用输出重定向的方式追加
#chattr +i passwd
#echo "123456789" >> passwd
bash: passwd: 权限不够
#rm -rf passwd
rm: 无法删除"passwd": 不允许的操作

浙公网安备 33010602011771号