1、首先建立一个名为workgroup的用户组,然后向用户组里面添加两名用户 tom 和liming,并为其设置密码
sudo groupadd workgroup
[sudo] lcy 的密码:
sudo useradd -G workgroup tom
sudo passwd tom
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
sudo useradd -G workgroup liming
sudo passwd liming
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
2、在home目录下新建work文件夹
cd /home
sudo mkdir work
3、work文件夹任何人都能访问,只有root用户可以修改,现在为其设置为workgroup组的成员都可以读写 其他用户无法访问
sudo chgrp workgroup work/ ##将work目录交给workgroup组
sudo chmod g+rwx work/ ##增加workgroup组对work的读写执行权限
sudo chmod o-rwx work/ ##撤销其他用户对其的读写执行权限
sudo chown tom work/ ##任命tom为组长
linux文件权限分为 属主权限、属组权限、其他用户权限、特殊权限。
特殊权限
s:setUID, 用户执行有s权限的文件时,会以属主身份去执行。eg: 普通用户执行passwd修改密码时,会通过passwd的属主,也就是root去执行。
设置SetUID
chmod 4xxx < file-name >
chmod u+s < file-name >
取消SetUID
chmod xxx < file-name >
chmod u-s < file-name >
s:setGID, 对于文件,执行该文件时,以组权限执行。对于目录,新文件会以该目录的默认属组作为默认属组。
设置SetGID
chmod 2xxx
chmod g+s
取消SetGID
chmod xxx
chmod g-s
t:StickBit, 粘滞位,t权限的目录有wx权限,进程结束后文件依然驻留在内存中,无法被其他用户删除。
设置SBIT
chmod 1xxx < dir-name >
chmod o+t < dir-name >
取消SBIT
chmod xxx < dir-name >
chmod o-t < dir-name >
共享目录
根据setGID的特性,可以实现大范围地创建并共享文档。
先做准备工作
创建一个分享组
parallels@abosen:~/temp$ sudo groupadd shared
添加当前用户到分享组
parallels@abosen:~/temp$ sudo usermod -a parallels -G shared
创建新用户,并添加到分享组,-M 不创建home目录
parallels@abosen:~/temp$ sudo useradd -M person2share -G shared
检查结果
parallels@abosen:~/temp$ id person2share
uid=1001(person2share) gid=1002(person2share) groups=1002(person2share),1001(shared)
parallels@abosen:~/temp$ cat /etc/group | grep shared
shared❌1001:parallels,person2share
共享目录
创建共享目录
parallels@abosen:~/temp$ mkdir shared_dir
parallels@abosen:~/temp$ ls -lF
total 4
drwxrwxr-x 2 parallels parallels 4096 Oct 31 15:37 shared_dir/
修改目录组,设置SGID
parallels@abosen:~/temp$ sudo chgrp shared shared_dir/
parallels@abosen:~/temp$ sudo chmod g+s shared_dir
parallels@abosen:~/temp$ ls -lF
total 4
drwxrwsr-x 2 parallels shared 4096 Oct 31 15:37 shared_dir/
注意到组权限x变为了s,设置SGID成功
目录下新建一个文件,该文件所属组为目录组,文件执行权限为组权限。可能需要设置umask
parallels@abosen:~/temp$ cd shared_dir/
parallels@abosen:~/temp/shared_dir$ touch testfile
parallels@abosen:~/temp/shared_dir$ ls -lF
total 0
-rw-rw-r-- 1 parallels shared 0 Oct 31 15:42 testfile
测试
关闭属主权限
parallels@abosen:~/temp/shared_dir$ sudo chmod u-rw testfile
[sudo] password for parallels:
parallels@abosen:~/temp/shared_dir$ ls -lF
total 0
----rw-r-- 1 parallels shared 0 Oct 31 15:42 testfile
parallels@abosen:~/temp/shared_dir$ cat testfile
cat: testfile: Permission denied
切换用户进行尝试
parallels@abosen:~/temp/shared_dir$ su person2share
Password:
$ ls -lF /home/parallels/temp/shared_dir/testfile
----rw-r-- 1 parallels shared 0 Oct 31 15:42 /home/parallels/temp/shared_dir/testfile
$ echo hello > /home/parallels/temp/shared_dir/testfile
$ cat /home/parallels/temp/shared_dir/testfile
hello
1026

被折叠的 条评论
为什么被折叠?



