Linux的用户及用户组管理
Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户口令。用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。
添加用户命令示例:useradd test_user 即可创建用户test_user
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
为新建用户设置密码:passwd test_user
添加用户组:groupadd test_user
修改用户信息:usermod
修改组信息:groupmod
删除用户:userdel -r test_user
删除组:groupdel 组名
更改文件或目录所属:chown -R 所属主:所属组 文件或目录
更改文件或目录权限:chmod -R 777/a+x/g-w/o=- 文件或者目录
作业一:
1) 新建用户natasha,uid为1000,gid为555,备注信息为“master”
[[email protected] /]# useradd -u 1000 -g 555 -c master natasha
2)修改natasha用户的家目录为/Natasha
[[email protected] /]# mkdir /Natasha
[[email protected] /]# usermod -d /Natasha
[[email protected] /]# usermod -d /Natasha natasha
3) 查看用户信息配置文件的最后一行
[[email protected] /]# tail -1 /etc/passwd
4) 为natasha用户设置密码“123”
[[email protected] /]# passwd natasha
更改用户 natasha 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[[email protected] /]#
5) 查看用户密码配置文件的最后一行
[[email protected] /]# tail -1 /etc/shadow
natasha:$6$wxwWQn0F$aR3nYxYj1KBGZh6z0zwudpCUF6sY7v45mZ7vq4Ji16ZlDBcssMNlhCpXoNzO4OZQE7aDt64Oz571xMbMJ05Tx0:17240:0:999 99:7:::
6) 将natasha用户账户锁定
[[email protected] /]# usermod -L natasha
7) 将natasha用户账户解锁
[[email protected] /]# usermod -U natasha
8) 新建组police,gid为999
[roo[email protected] /]# groupadd -g 999 police
注:此处gid为999的是另外一个组名,将其修改为其他后新建此组,修改文件为/etc/group
9) 查看组配置文件的最后一行
[[email protected] /]# tail -1 /etc/group
police:x:999:
10) 将natasha用户加入police组
[[email protected] /]# usermod -G police natasha
[[email protected] /]# id natasha
uid=1000(natasha) gid=555(natasha) 组=555(natasha),999(police)
11) 修改police组的组名为jingcha
[[email protected] /]# groupmod -n jingcha police
12) 删除natasha用户,连家目录和邮箱一起删除
[[email protected] /]# userdel -rf natasha
13) 删除jingcha组
[[email protected] /]# groupdel jingcha
作业二:
1) 在用户的主目录下创建目录test,进入test创建空文件file1
[[email protected] ~]# cd ~
[[email protected] ~]# mkdir test
[[email protected] ~]# cd test
[[email protected] test]# touch file1
[[email protected] test]#
2)以长格式形式显示文件信息,注意文件的权限和所属用户和组
[[email protected] test]# ls -l file1
-rw-r--r--. 1 root root 0 3月 15 16:13 file1
3)为文件file1设置权限,使其他用户可以对此文件进行写操作。
[[email protected] test]# chmod o+w file1
4)查看设置结果,
[[email protected] test]# ll
总用量 0
-rw-r--rw-. 1 root root 0 3月 15 16:13 file1
5)取消同组用户对文件file1的读取权限,并查看设置结果。
[[email protected] test]# chmod g-r file1
[[email protected] test]# ll
总用量 0
-rw----rw-. 1 root root 0 3月 15 16:13 file1
[[email protected] test]#
6)用数字表示法为文件file设置权限,所有者可读、可写、可执行,所属组用户和其他用户只具有读和执行的权限。设置完成后查看设置结果。
[[email protected] test]# chmod 755 file1
[[email protected] test]# ll
总用量 0
-rwxr-xr-x. 1 root root 0 3月 15 16:13 file1
7)用数字形式更改文件file1的权限,使所有者只能读取此文件。其他任何用户都没有权限。查看设置结果。
[[email protected] test]# chmod 400 file1
[[email protected] test]# ll
总用量 0
-r--------. 1 root root 0 3月 15 16:13 file1
[[email protected] test]#
8)回到上层目录,查看test的权限
[[email protected] ~]# ls -dl test
drwxr-xr-x. 2 root root 19 3月 15 16:13 test
9)为其他用户添加对此目录的写权限
[[email protected] ~]# chmod o+w test
[[email protected] ~]# ls -dl test
drwxr-xrwx. 2 root root 19 3月 15 16:13 test
[[email protected] ~]#
作业三:
以操作文件的方式,新建一个用户alex
[[email protected] ~]# mkdir /home/alex #创建家目录
[[email protected] ~]# cp -r /etc/skel/.[!.]* /home/alex #拷贝默认初始文件
[[email protected] ~]# tail -1 /etc/passwd
oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin
[[email protected] ~]# echo "alex:x:1005:1005::/home/alex:/bin/bash" >>/etc/passwd #以追加的方式在用户文件末尾增加账号信息
[[email protected] ~]# tail -1 /etc/passwd
alex:x:1005:1005::/home/alex:/bin/bash
[[email protected] ~]# vim /etc/shadow #修改账号密码文件
文件末尾追加alex:!!:17240:0:99999:7:::然后退出保存
[[email protected] ~]# vim /etc/group #修改组文件
文件末尾追加alex:x:1007:然后保存退出
[[email protected] ~]# vim /etc/gshadow #修改组密码
文件末尾追加alex:!::然后保存退出
[[email protected] ~]# chown -R alex:alex /home/alex #改变alex家目录的所属主和所属组
[[email protected] ~]# touch /var/spool/mail/alex #为新账号新建邮箱
[[email protected] ~]# chown -R alex:mail /var/spool/mail/alex #修改alex的邮箱所属主是alex组是mail
作业四:
1) 新建目录/test/dir,属主为tom,数组为group1,/test目录的权限为777
[[email protected] ~]# mkdir -p /test/dir
[[email protected] ~]# groupadd group1
[[email protected] ~]# useradd tom
[[email protected] ~]# chown -R tom:group1 /test/dir
[[email protected] ~]# ls -al /test/dir
总用量 0
drwxr-xr-x. 2 tom group1 6 3月 15 16:44 .
drwxr-xr-x. 3 root root 17 3月 15 16:44 ..
[[email protected] ~]# ls -al /test
总用量 0
drwxr-xr-x. 3 root root 17 3月 15 16:44 .
dr-xr-xr-x. 20 root root 277 3月 15 16:44 ..
drwxr-xr-x. 2 tom group1 6 3月 15 16:44 dir
[[email protected] ~]#
[[email protected] ~]# chmod 777 /test
[[email protected] ~]# ls -dl /test
drwxrwxrwx. 3 root root 17 3月 15 16:44 /test
2) 新建用户jack,切换到jack用户下,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的others权限)
[[email protected] test]$ ls -dl dir
drwxr-xr-x. 2 tom group1 6 3月 15 16:44 dir
3)将jack加入group1组,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的group权限)
[[email protected] ~]# usermod -a -G group1 jack
[[email protected] ~]# id jack
uid=1008(jack) gid=1008(jack) 组=1008(jack),10000(group1)
[[email protected] ~]# su - jack
上一次登录:三 3月 15 16:49:55 CST 2017pts/0 上
[[email protected] ~]$ cd /test
[[email protected] test]$ ls
dir
[[email protected] test]$ ls -dl dir
drwxr-xr-x. 2 tom group1 6 3月 15 16:44 dir
[[email protected] test]$ cd dir
[[email protected] dir]$ ls
[[email protected] dir]$
4)切换到tom用户,验证tom用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的user权限)
[[email protected] ~]# su - tom
Attempting to create directory /home/tom/perl5
[[email protected] ~]$ cd /test
[[email protected] test]$ ls
dir
[[email protected] test]$ cd dir
[[email protected] dir]$ ls
[[email protected] dir]$
5)在dir目录内新建文件tom.txt,属主为tom,属组为group1,/test目录的权限为777
[[email protected] ~]# cd /test/dir
[[email protected] dir]# ls
tom.txt
[[email protected] dir]# ls
tom.txt
[[email protected] dir]# ls -l
总用量 0
-rw-rw-r--. 1 tom tom 0 3月 15 17:01 tom.txt
[[email protected] dir]# chown tom:group1 tom.txt
[[email protected] dir]# ls -l
总用量 0
-rw-rw-r--. 1 tom group1 0 3月 15 17:01 tom.txt
[[email protected] dir]#
6)新建用户rose,切换到rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的others权限来配合验证过程)
[[email protected] /]# useradd rose
[[email protected] /]# passwd rose
更改用户 rose 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[[email protected] dir]$ su - rose
密码:
最后一次失败的登录:三 3月 15 11:30:40 CST 2017tty2 上
最有一次成功登录后有 1 次失败的登录尝试。
Attempting to create directory /home/rose/perl5
[[email protected] ~]$
[[email protected] ~]$ cd /test/dir
[[email protected] dir]$ ls
tom.txt
[[email protected] dir]$ cat tom.txt
[[email protected] dir]$ id rose
uid=1009(rose) gid=1009(rose) 组=1009(rose)
[[email protected] dir]$ cat tom.txt
this is tom write
[[email protected] dir]$
[[email protected] /]# chmod o+w /test/dir/tom.txt
[[email protected] dir]$ vim tom.txt
[[email protected] dir]$ cat tom.txt
this is tom write
this is rose write
7)将rose加入group1组,在rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的group1权限来配合验证过程)
[[email protected] /]# usermod -a -G group1 rose
[[email protected] dir]$ cat tom.txt
this is tom write
this is rose write
[[email protected] /]# chmod 600 /test/dir/tom.txt
[[email protected] dir]$ cat tom.txt
cat: tom.txt: 权限不够
8)切换到tom用户,验证tom用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的user权限来配合验证过程)
[[email protected] ~]$ cd /test/dir
[[email protected] dir]$ ls
tom.txt
[[email protected] dir]$ cat tom.txt
this is tom write
this is rose write
[[email protected] dir]$ vim tom.txt
[[email protected] dir]$ cat t
cat: t: 没有那个文件或目录
[[email protected] dir]$ cat tom.txt
this is tom write
this is rose write
test over
[[email protected] dir]$
[[email protected] /]# chmod 000 /test/dir/tom.txt
[[email protected] dir]$ cat tom.txt
cat: tom.txt: 权限不够
总结:至此关于文件和目录的权限操作步骤已经练习完成,之所以说Linux是一个安全性较高的系统,就是因为Linux对系统文件的权限管理比较完善,在linux系统中一切皆文件,目录也可以看成是一个文件,跟文件一样,也可以修改其所属主和所属组的读写以及执行权限。关于文件及目录权限的管理在今后的生产环境中会经常遇到,希望大家细心处理不要弄错了!