编辑权限
- 赋予 argor 重启服务器权限
visudo root ALL=(ALL) ALL argor ALL=/sbin/shutdown -r now
root ALL=(ALL) ALL argor ALL=/sbin/shutdown -r now,/usr/sbin/init 6
- 查看被赋予的权限
[argor@argor ~]$ sudo -l [sudo] password for argor: Matching Defaults entries for argor on argor: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin User argor may run the following commands on argor: (root) /sbin/shutdown -r now, /usr/sbin/init 6
SUID
- 意义:命令的执行者,以文件的所有者身份执行命令(所有组,……,passwd命令拥有的意义,在处理/etc/shadow文件)
- 范例查看(红底白字显示文件)
[root@argor argor]# ll /usr/bin/passwd -rwsr-xr-x. 1 root root 27856 Apr 1 11:57 /usr/bin/passwd
赋予 suid 权限[root@argor argor]# chmod u+s /usr/bin/list [root@argor argor]# ll /usr/bin/list -rwsr-xr-x. 1 root root 26 Jun 1 19:05 /usr/bin/list
数字形式赋予权限(默认为0,例0755)[root@argor argor]# ll /usr/bin/list -rwxr-xr-x. 1 root root 26 Jun 1 19:05 /usr/bin/list [root@argor argor]# chmod 4755 /usr/bin/list [root@argor argor]# ll /usr/bin/list -rwsr-xr-x. 1 root root 26 Jun 1 19:05 /usr/bin/list [root@argor argor]# chmod 2755 /usr/bin/list [root@argor argor]# ll /usr/bin/list -rwxr-sr-x. 1 root root 26 Jun 1 19:05 /usr/bin/list [root@argor argor]# chmod 1755 /usr/bin/list [root@argor argor]# ll /usr/bin/list -rwxr-xr-t. 1 root root 26 Jun 1 19:05 /usr/bin/list [root@argor argor]# chmod 0755 /usr/bin/list [root@argor argor]# ll /usr/bin/list -rwxr-xr-x. 1 root root 26 Jun 1 19:05 /usr/bin/list
这个例子中既有suid,又有sgid。suid要求有x权限,sgid要求有w权限。都要作用于可执行文件,suid用于对文件权限的升级,sgid用于目录权限的升级(目录和文件)。
suid的危险性要高于sudo权限,慎之又慎。要求sgid其实就是要有777权限。sbit有个效果,就是自己只能删除自己创建的文件。sgid,sbit使用范例:
[root@argor argor]# ll -d /tmp drwxrwxrwt. 18 root root 4096 Jun 20 05:29 /tmp [root@argor argor]# [root@argor argor]# [root@argor argor]# wll locate -rwx--s--x. 1 root slocate 40520 Apr 11 2018 /usr/bin/locate
chattr
在形式上可以限制 root 的操作。有效防止误删除。
- 用法
设置权限 chattr,查看权限 lsattr(目录用 -d) + 增加权限 - 删除权限 i 加锁,不能删除文件,不能改内容 a 在 i 效果的基础上,允许给文件追加内容
- 设置 i 属性权限
作用于普通文件,该文件不允许删除,不允许修改。
# 设置权限 # chattr +i ttt # 查看权限 # lsattr ttt ----i----------- ttt # 可以正常运行 # ./ttt 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:50:d2:44 brd ff:ff:ff:ff:ff:ff inet 192.168.81.134/24 brd 192.168.81.255 scope global noprefixroute dynamic ens33 valid_lft 5441526sec preferred_lft 5441526sec inet6 fe80::aa64:7330:2ee0:ee57/64 scope link noprefixroute valid_lft forever preferred_lft forever ./ttt: line 4: hello: command not found ./ttt: line 5: ll: command not found # 不能修改,也不能删除 # rm -f ttt rm: cannot remove ‘ttt’: Operation not permitted
作用于目录,不允许修改、删除目录的内容,也不能删除目录自己# 查看目录权限需要一个 d 选项 [root@argor ~]# lsattr -d test/ ----i----------- test/ [root@argor ~]# lsattr test/ttt ---------------- test/ttt # 不能删除目录的内容(针对目录的修改,删除) [root@argor ~]# rm -f test/ttt rm: cannot remove ‘test/ttt’: Permission denied [root@argor ~]# echo hello > test/hello bash: test/hello: Permission denied [root@argor ~]# mv test/ttt test/vvv mv: cannot move ‘test/ttt’ to ‘test/vvv’: Permission denied [root@argor ~]# rm -fr test/ rm: cannot remove ‘test/ttt’: Permission denied
针对目录下未设置 i 属性的文件,是可以编辑的。
- 设置 a 属性权限
作用于文件,仅仅可以追加文件内容;
作用于目录,仅仅可以增加目录中的文件。
Linux权限