Linux 8特殊权限
查看passwd命令文件的权限
首先通过which查看passwd命令文件所在位置
# which passwd
我们发现所在位置是:
/usr/bin/passwd
注意区分 /etc/passwd下的passwd文件,此处是配置文件
通过 ll /user/bin/passwd查看详细信息
-rwsr- xr- X.1 root root 27832 1月 30 2014 /usr/bin/passwd
发现这个文件被分配了suid权限,这样,当普通用户使用这个文件来更改密码时,文件将以文件所属用户root的权限来运行,而root用户是能够对/etc/shadow做出修改的
suid权限:
user1用户在自己的家目录([ user1@localhost~])中创建文件file1和file2
分别使用字母和数字的方式给两个文件加上suid权限
首先新建文件 file1, file2
$ touch file1
$ touch file2
查看文件详细信息
-rw-rw-r--. 1 userl userl 0 xxxxxx file1
-rw-rW-r--. 1 userl userl 0 xxxxxx file2
添加suid权限
$ chmod u+S file1
$ chmod u+4664 file2
查看文件详细信息
-rwSrW-r--. 1 user1 user1 0 xxxxxx file1
-rwSrW-r--. 1 user1 user1 0 xxxxxx file2
sgid权限
user1用户在自己的家目录中创建文件夹test
切换到超级用户,新建一个测试组testgroup,调整test这个目录的所属组到testgroup
给test添加sgid
切换到普通用户user1,进入test新建一个文件subfile和文件夹subtest,并查看他们所属组
首先在user1家目录中新建test文件夹
# su user1
$ mkdir test
查看详细信息为:
drwxrwxr- x. 2 user1 user1 6 xxxxxx test
切换超级用户root,新建testgroup
$ exit
# groupadd testgroup
调整test这个目录的所属组到testgroup
# cd /home/user1/
# chown : testgroup test 或 chgrp testgroup test
drwxrwxr- x. 2 user1 testgroup 4096 xxxxxx test
chown : 改变所属组
给test添加sgid权限
# chmod g+s test
drwxrwxsr- x. 2 user1 testgroup 4096 xxxxxx test
切换到普通用户user1,进入test新建一个文件subfile和文件夹subtest,并查看他们所属组
# su user1
$ cd test
$ touch subfile
$ mkdir subtest
$ ll
-rw-rw-r--. 1 user1 testgroup 0 xxxxxx subfile
drwxrwsr-x. 2 user1 testgroup 4096 xxxxxx subtest
sticky权限
假设我们有两个用户nash和bob,他们被分配到net组,我们有一个testdir的文件夹属于net组,net组中的成员对这个文件夹拥有读写权限,我们需要使用sticky权限对这个文件夹进行控制,让nash和bob只能查看对方创建的文件,但是不能修改和删除
1.创建net组和bob、nash用户,并将用户分配到net组中
2.创建testdir文件夹并将它的所属组更改为net,给这个组添加可读写权限
3.不加sticky权限时,测试一下nash和bob是否能查看、修改和删除对方创建的文件
4.给testdir目录添加sticky权限,再测试一下nash和bob是否能查看、修改和删除对方创建的文件
首先新建net组
# groupadd net
bob、nash用户,并将用户分配到net组中
# useradd -G net bob
# useradd -G net nash
创建testdir文件夹并将它的所属组更改为net,给这个组添加可读写权限
# cd /home
# mkdir testdir
drwxr- xr-x. 2 root root 4096 xxxxxx testdir
# chown : net testdir
drwxr- xr-x. 2 root net 4096 xxxxxx testdir
# chomod g+w testdir
drwxrwxr- x.2 root net 4096 xxxxxx testdir
不加sticky权限时,测试一下nash和bob是否能查看、修改和删除对方创建的文件
# su bob
$ cd testdir
$ touch bobfile
$ exit
# su nash
# cd testdir
# rm -f bobfile
可以发现可以正常删除
给testdir目录添加sticky权限,再测试一下nash和bob是否能查看、修改和删除对方创建的文件
# chmod o+t testdir
#ll
drwxrwxr- t. 2 root net 4096 xxxxxx testdir
# su bob
$ cd testdir
$ touch bobfile
$ exit
# su nash
# cd testdir
# rm -f bobfile
rm: 无法删除"bobfile":不允许的操作