1. SUID
系统中存在一些文件,只有root可以执行,若其他用户想要执行,可以为此文件设置SUID即可,其他用户运行此命令时是暂时以root的身份运行的。
设置了SUID的文件在用户权限的可执行位置上显示s/S,
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
若将去除uid设置,其他用户就不可以执行此文件
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
[root@localhost ~]# chmod u-s /usr/bin/passwd
[root@localhost ~]# ll /usr/bin/passwd
-rwxr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
[root@localhost ~]# su - lemon
[lemon@localhost ~]$ passwd
Changing password for user lemon.
Changing password for lemon
(current) UNIX password:
passwd: Authentication token manipulation error
2. SGID类似于SUID,表示执行文件时暂时有root用户组所具有的权限
SGID SUID 一般针对文件
设置使用命令chmod g+/-s 文件 和 chmod u+/-s 文件 或用数字设置权限
3. 粘着位 一般针对目录
设置后,在其他用户组的权限为上显示“t”,表示该目录下,谁建立的文件,谁就有权力删除,其他用户除了root和目录所属组之外都不能删除。一般用户共享目录,允许大家建立目录和文件,但禁止互相删除,只允许建立者自己删除。
设置使用命令chmod +/-t 文件 或用数字设置权限
4. sudo
su SUID SGID 等都是运行用户更改自己的身份,获得系统中其他权限的方法。这些都对系统的安全
sudo的配置文件为/etc/sudoers,这个文件的权限是440,只读权限,若要修改必须该权限(不安全),或者使用
visodu 命令编辑
75 ## Allow root to run any commands anywhere
76 root ALL=(ALL) ALL
第76行的格式为: 用户名 主机名 = (执行身份) 允许执行的命令
也可用 : % 组名 主机名 = (执行身份) 允许执行的命令
82 ## Allows people in group wheel to run all commands
83 # %wheel ALL=(ALL) ALL
84
85 ## Same thing without a password
86 # %wheel ALL=(ALL) NOPASSWD: ALL
NOPASSWD 表示在执行sudo命令时,不用输入用户密码就可以执行,尽量不要使用该参数,不安全。
User_Alias 、 Host_Alias、 Cmnd_Alias 可以为多个用户、主机、命令设置别名
[test@localhost ~]$ fdisk -l
-bash: fdisk: command not found
[test@localhost ~]$ /sbin/fdisk -l
[test@localhost ~]$ sudo fdisk -l
Password:
sudo: fdisk: command not found
执行visudo命令后,
新添一行 test ALL=/sbin/fdisk
或者添加
User_Alias FENG=lemon, test
Cmnd_Alias CMD_FENG=/sbin/fdisk
FENG ALL=(ALL) CMD_FENG (默认是需要密码的,即FENG ALL=(ALL) PASSWD:CMD_FENG)
不需要密码验证身份,FENG ALL=(ALL) NOPASSWD:CMD_FENG
注:别名必须都为大写,否则会报错~
保存退出后 ,test用户就可以使用sudo执行fdisk命令,输入的命令必须是完整路径
[test@localhost ~]$ sudo /sbin/fdisk -l
Password:
Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 5221 41833260 8e Linux LVM
5. umask
系统建立目录默认的权限是777,文件是666,而用户的umask表示用户在建立文件或者目录时所不具有的权限。
root用户默认umask值是022,其他用户是002
如,root用户建立test目录权限是777-002=775,文件是666-002=664
6. chattr
设置文件属性
chattr +/-i file 禁止/允许系统所有用户更改file,包括root
chattr +/-A file 禁止/允许修改file访问时间记录
chattr +a file 只能向文件添加内容,但不能修改内容,不能用vi编辑文件,但可以用
echo "hello" >> file 向文件追加内容
7. lsattr 显示文件属性
8. ACL 文件访问控制列表
若对于某个文件,用户组A需要rwx权限,而组B需要r--权限,其他用户无操作权限,此时可以使用setfacl来对文件的权限进行设置。
先设置文件所在分区的默认启动安装模式为acl
vi /etc/fstab
LABEL=/boot /boot ext3 acl 1 2
重新挂在分区
mount -o remount /boot
建立文件并将文件权限设置为770
[root@localhost boot]# touch test
[root@localhost boot]# chmod 770 test
[root@localhost boot]# ll
-rwxrwx--- 1 root root 0 Oct 6 11:33 test
为lemon组添加例外
[root@localhost boot]# setfacl -m g:lemon:r-- test
-m表修改文件权限 g表示添加一个组的权限,若是添加一个用户权限则用u,:是分割服,后来是组名或用户名,接着是权限 和文件或目录名。
getfacl查看修改的权限结果
[root@localhost boot]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
group::rwx
group:lemon:r--
mask::rwx
other::---
[root@localhost boot]# ll test
-rwxrwx---+ 1 root root 0 Oct 6 11:33 test
[root@localhost boot]# setfacl -b test
[root@localhost boot]# ll test
-rwxrwx--- 1 root root 0 Oct 6 11:33 test
设置了acl的文件,会出现‘+’表示权限的不同
-b 表删除acl设置
也可使用--set-file参数从文件导入设置acl
[root@localhost boot]# cat t
# file: test
# owner: root
# group: root
user::rwx
group::rwx
group:lemon:r--
mask::rwx
other::---
[root@localhost boot]# setfacl --set-file t test
[root@localhost boot]# ll test
-rwxrwx---+ 1 root root 0 Oct 6 11:33 test
参考网址:
http://blog.csdn.net/wl_haanel/article/details/4793176
http://hi.baidu.com/circledong/blog/item/df318242d9dfc91f72f05d21.html
阅读(3888) | 评论(0) | 转发(0) |