day3
文章目录
用户和组
useradd用法
-
useradd [选项] 用户名
-
useradd zhao -u 2000 创建用户zhao并指定uid=2000
-
useradd hr01 -G hr 创建用户hr01并添加到已存在的组hr中
-
useradd li1 -u 3000 -d /ccc 创建li1用户uid设置3000放置在根目录下的ccc
-
Linux系统中每添加一个用户,也会添加一个对应的组
userdel用法
- userdel [选项] 用户名
- userdel -r li1 删除li1用户
- -r:同时删除用户的主目录和邮件目录。如果不指定此选项,删除用户后用户的主目录和邮件目录将被保留。
- -f:强制删除用户,即使用户当前登录在系统中。如果不指定此选项,当用户登录时无法删除该用户。
groupadd用法
-
tail /etc/group 可以查看当前已创建的组
-
groupadd [选项] 组名
-
groupadd nt -g 5000创建nt组并指定gid=5000
-
groupdel nt 删除nt组
gpasswd用法
- gpasswd [参数] 用户名 组名
- -a 添加一个用户到组
- -A 指定管理员
- -M 添加多个用户到组
- -d 从组中删除用户
- gpasswd -M jim,tom,wing hr 将多个用户添加到hr组,
- gpasswd -d tom hr 将tom从hr组中删除
查看用户是否存在
- id li1 查看是否有这个用户
权限
权限查看
-
ll 文件
-
ll -d 文件夹
-
ugo:u用户,g组,o其他
-
基本权限类型:
读(read):r ---->4
写(write):w ---->2
执行: x(exec) ----->1
权限更改
现有一个文件1
权限为-rw-r--r-- 权限为644
chmod u+x 1,之后变成-rwxr--r-- 权限变为744
chmod a=rwx 1之后变成-rwxrwxrwx,权限为777
chmod a=-rwx之后变成----------,权限为000
现有一个目录2
chmod ug=rw,o=r 2后变成drw-rw-r--
chmod 700 2变成drwx------
chmod -R /tmp/2/ 777添加-R表递归,2目录下的子文件也会被更改权限
chmod 777 * 当前目录下的所有文件/文件夹权限都改为777
修改属主和属组
例如1文件默认文件权限是:
-rwxrwxrwx 1 root root 0 4月 20 11:01 1
useradd jack 创建jack用户
chown jack 1 修改文件1的所属用户为jack
ll 1
-rwxrwxrwx 1 jack root 0 4月 20 11:01 1
groupadd jd 创建组jd
chgrp jd 1 把文件1的所属组更改为jd
ll 1
-rwxrwxrwx 1 jack jd 0 4月 20 11:01 1
修改目录属主
chown jack /home/hr 把/home/hr所属用户更改为jac
修改属于组
mkdir /home/hr
chgrp hr /home/hr 把/home/hr目录的所属组更改为hr
chmod 770 /home/hr
修改属于组后,被添加的账户需要重新登陆一下系统
不管权限是什么,root账户都可以随意查看
高级权限
chmod u+s file 通常针对命令
chmod g+s dir
chmod o+t dir 针对目录,添加完高级权限以后,用户只能删除自己创建的文件
suid
chmod u+s /usr/bin/cat 针对文件(命令)让cat命令拥有root权限,就可以随意查看文件了
chmod u+s /usr/bin/rm 这时普通用户用rm命令时也就有管理员权限了
chmod u-s /usr/bin/rm 取消普通用户使用rm命令时候拥有的root权限
sgid
当一个目录设置了g+s权限后,在此目录下创建的文件或子目录的组所有者会自动设为该目录的组所有者。这是一个比较特殊的权限设置,主要用于文件系统的共享管理。例如,有一个名为share的目录,属于group1组,并设置了g+s权限:
bash
chmod g+s share
然后user1属于group1组,user2属于group2组。当user1在share目录下创建文件file时:
bash
touch file
file文件的组所有者会自动设为group1(share目录的组)。当user2在share目录下创建文件file时:
bash
touch file
file文件的组所有者同样会自动设为group1(share目录的组)。这就实现了在share这个目录下,无论谁创建的文件,组所有者都会统一为group1。这在文件系统的共享管理中有比较好的应用。
设置g+s权限后,目录里原文件所属组不变。
sticky
chmod o+t dir 针对目录,添加完高级权限以后,用户只能删除自己创建的文件
chmod o+t,当一个目录设置了o+t权限后,普通用户只能删除自己在此目录下创建的文件/目录,无法删除其他用户创建的文件/目录。这是Linux系统默认的一种安全机制,目的是保护敏感目录不被非法删除。例如,有一个名为tmp的目录,所有用户都有读写权限:
bash
chmod 777 tmp
然后user1在tmp目录下创建文件file1,user2创建file2。此时,user1可以删除file1,但无法删除file2;user2也可以删除file2,但无法删除file1。这样就避免了一个用户可以随意删除其他用户在公共目录下的文件。
查找命令所在目录
which 命令
which cat
/usr/bin/cat
课堂练习
-
添加账号 wang1 指定用户家目录为/bbbb
useradd wang -d /bbbb
-
添加组 CW 指定GID为 6000
groupadd CW -g 6000
-
删除组 HR
groupdel HR
-
组信息在哪个配置文件中
/etc/group
-
将 ti 和yi用户 添加到CW组中,然后删除把ti用户从CW组中删除
useradd ti
useradd yi
gpasswd -M ti,yi CW
gpasswd -d ti CW
-
删除ti用户
userdel ti
课后习题
权限设置:背着写
1.修改 /tmp 下1的文件权限为700 使用数字
chmod 700 /tmp/1
2.修改 /tmp下2的目录 权限为765 使用字母
chmod u=rwx,g=rw,o=wx /tmp/2
3.请查看 1 2 的权限
ll 1 2
4.linux系统下 默认创建的文件及目录权限分别是多少?
644 755
5.使用字母给 1文件加执行权限。然后设置所有人都没有任何权限。
chmod a=x 1
chmod ugo=-rwx 1
6.r w x 分别代表数字是多少?
r=4 w=2 x=1
7.修改属主 , 属组命令是什么?
chown,chgrp
8.创建一个文件 /tmp/gongzi.txt 要求:此文件属于RS组,并且只有root和组成员能够读写执行。
touch /tmp/gongzi.txt
groupadd RS
chgrp RS /tmp/gongzi.txt
chmod 770 /tmp/gongzi.txt
9.创建一个文件 /tmp/shebei.txt 要求只有IT组的成员和root能够读写执行,其他人有只读权限
touch /tmp/shebei.txt
groupadd IT
chgrp IT /tmp/shebei.txt
chmod 474 /tmp/shebei.txt
10.修改/tmp/shebei.txt权限为750 先使用chmod 777 shebei.txt 然后用字母去减 变成750
cd /tmp/
chmod 777 shebei.txt
chmod g-w,o=-rwx
12.修改/tmp/gongzi.txt权限为700 使用英文字母 表示
chmod u=rwx,go=-rwx shebei.txt
13.gpasswd 同时添加 zhang1 zhang2 zhang3 到 HR组
gpasswd -M zhang1,zhang2,zhang3 HR
14.针对hr部门的访问目录/home/it设置权限,要求如下:
root用户和hr组的员工可以读、写 其他用户无权限
hr组里删除zhang1
groupadd hr
chgrp h1 /home/it
gpasswd -a root hr
chmod 760 /home/it
apasswd -d zhang1 hr
高级权限
1.要求普通用户可以查看并且删除/root/2.txt文件。
chmod u+s /usr/bin/rm
2.设置 /home/dir2的属组为it。 新创建的文件要求继承it组
chgrp it /home/dir
chmod g+s /home/dir
3.要求zhang1和zhang2用户在 /home/dir1目录只能删除自己创建的文件
chmod o+t /home/dir1