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”
[root@bogon /]# useradd -u 1000 -g 555 -c master natasha
2)修改natasha用户的家目录为/Natasha
[root@bogon /]# mkdir /Natasha
[root@bogon /]# usermod -d /Natasha
[root@bogon /]# usermod -d /Natasha natasha
3) 查看用户信息配置文件的最后一行
[root@bogon /]# tail -1 /etc/passwd
4) 为natasha用户设置密码“123”
[root@bogon /]# passwd natasha
更改用户 natasha 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@bogon /]#
5) 查看用户密码配置文件的最后一行
[root@bogon /]# tail -1 /etc/shadow
natasha:$6$wxwWQn0F$aR3nYxYj1KBGZh6z0zwudpCUF6sY7v45mZ7vq4Ji16ZlDBcssMNlhCpXoNzO4OZQE7aDt64Oz571xMbMJ05Tx0:17240:0:999 99:7:::
6) 将natasha用户账户锁定
[root@bogon /]# usermod -L natasha
7) 将natasha用户账户解锁
[root@bogon /]# usermod -U natasha
8) 新建组police,gid为999
[root@bogon /]# groupadd -g 999 police
注:此处gid为999的是另外一个组名,将其修改为其他后新建此组,修改文件为/etc/group
9) 查看组配置文件的最后一行
[root@bogon /]# tail -1 /etc/group
police:x:999:
10) 将natasha用户加入police组
[root@bogon /]# usermod -G police natasha
[root@bogon /]# id natasha
uid=1000(natasha) gid=555(natasha) 组=555(natasha),999(police)
11) 修改police组的组名为jingcha
[root@bogon /]# groupmod -n jingcha police
12) 删除natasha用户,连家目录和邮箱一起删除
[root@bogon /]# userdel -rf natasha
13) 删除jingcha组
[root@bogon /]# groupdel jingcha
作业二:
1) 在用户的主目录下创建目录test,进入test创建空文件file1
[root@bogon ~]# cd ~
[root@bogon ~]# mkdir test
[root@bogon ~]# cd test
[root@bogon test]# touch file1
[root@bogon test]#
2)以长格式形式显示文件信息,注意文件的权限和所属用户和组
[root@bogon test]# ls -l file1
-rw-r--r--. 1 root root 0 3月 15 16:13 file1
3)为文件file1设置权限,使其他用户可以对此文件进行写操作。
[root@bogon test]# chmod o+w file1
4)查看设置结果,
[root@bogon test]# ll
总用量 0
-rw-r--rw-. 1 root root 0 3月 15 16:13 file1
5)取消同组用户对文件file1的读取权限,并查看设置结果。
[root@bogon test]# chmod g-r file1
[root@bogon test]# ll
总用量 0
-rw----rw-. 1 root root 0 3月 15 16:13 file1
[root@bogon test]#
6)用数字表示法为文件file设置权限,所有者可读、可写、可执行,所属组用户和其他用户只具有读和执行的权限。设置完成后查看设置结果。
[root@bogon test]# chmod 755 file1
[root@bogon test]# ll
总用量 0
-rwxr-xr-x. 1 root root 0 3月 15 16:13 file1
7)用数字形式更改文件file1的权限,使所有者只能读取此文件。其他任何用户都没有权限。查看设置结果。
[root@bogon test]# chmod 400 file1
[root@bogon test]# ll
总用量 0
-r--------. 1 root root 0 3月 15 16:13 file1
[root@bogon test]#
8)回到上层目录,查看test的权限
[root@bogon ~]# ls -dl test
drwxr-xr-x. 2 root root 19 3月 15 16:13 test
9)为其他用户添加对此目录的写权限
[root@bogon ~]# chmod o+w test
[root@bogon ~]# ls -dl test
drwxr-xrwx. 2 root root 19 3月 15 16:13 test
[root@bogon ~]#
作业三:
以操作文件的方式,新建一个用户alex
[root@bogon ~]# mkdir /home/alex #创建家目录
[root@bogon ~]# cp -r /etc/skel/.[!.]* /home/alex #拷贝默认初始文件
[root@bogon ~]# tail -1 /etc/passwd
oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin
[root@bogon ~]# echo "alex:x:1005:1005::/home/alex:/bin/bash" >>/etc/passwd #以追加的方式在用户文件末尾增加账号信息
[root@bogon ~]# tail -1 /etc/passwd
alex:x:1005:1005::/home/alex:/bin/bash
[root@bogon ~]# vim /etc/shadow #修改账号密码文件
文件末尾追加alex:!!:17240:0:99999:7:::然后退出保存
[root@bogon ~]# vim /etc/group #修改组文件
文件末尾追加alex:x:1007:然后保存退出
[root@bogon ~]# vim /etc/gshadow #修改组密码
文件末尾追加alex:!::然后保存退出
[root@bogon ~]# chown -R alex:alex /home/alex #改变alex家目录的所属主和所属组
[root@bogon ~]# touch /var/spool/mail/alex #为新账号新建邮箱
[root@bogon ~]# chown -R alex:mail /var/spool/mail/alex #修改alex的邮箱所属主是alex组是mail
作业四:
1) 新建目录/test/dir,属主为tom,数组为group1,/test目录的权限为777
[root@bogon ~]# mkdir -p /test/dir
[root@bogon ~]# groupadd group1
[root@bogon ~]# useradd tom
[root@bogon ~]# chown -R tom:group1 /test/dir
[root@bogon ~]# 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 ..
[root@bogon ~]# 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
[root@bogon ~]#
[root@bogon ~]# chmod 777 /test
[root@bogon ~]# ls -dl /test
drwxrwxrwx. 3 root root 17 3月 15 16:44 /test
2) 新建用户jack,切换到jack用户下,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的others权限)
[jack@bogon test]$ ls -dl dir
drwxr-xr-x. 2 tom group1 6 3月 15 16:44 dir
3)将jack加入group1组,验证jack用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的group权限)
[root@bogon ~]# usermod -a -G group1 jack
[root@bogon ~]# id jack
uid=1008(jack) gid=1008(jack) 组=1008(jack),10000(group1)
[root@bogon ~]# su - jack
上一次登录:三 3月 15 16:49:55 CST 2017pts/0 上
[jack@bogon ~]$ cd /test
[jack@bogon test]$ ls
dir
[jack@bogon test]$ ls -dl dir
drwxr-xr-x. 2 tom group1 6 3月 15 16:44 dir
[jack@bogon test]$ cd dir
[jack@bogon dir]$ ls
[jack@bogon dir]$
4)切换到tom用户,验证tom用户对dir目录的rwx权限(开启另外一个终端,依次修改dir目录的user权限)
[root@bogon ~]# su - tom
Attempting to create directory /home/tom/perl5
[tom@bogon ~]$ cd /test
[tom@bogon test]$ ls
dir
[tom@bogon test]$ cd dir
[tom@bogon dir]$ ls
[tom@bogon dir]$
5)在dir目录内新建文件tom.txt,属主为tom,属组为group1,/test目录的权限为777
[root@bogon ~]# cd /test/dir
[root@bogon dir]# ls
tom.txt
[root@bogon dir]# ls
tom.txt
[root@bogon dir]# ls -l
总用量 0
-rw-rw-r--. 1 tom tom 0 3月 15 17:01 tom.txt
[root@bogon dir]# chown tom:group1 tom.txt
[root@bogon dir]# ls -l
总用量 0
-rw-rw-r--. 1 tom group1 0 3月 15 17:01 tom.txt
[root@bogon dir]#
6)新建用户rose,切换到rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的others权限来配合验证过程)
[root@bogon /]# useradd rose
[root@bogon /]# passwd rose
更改用户 rose 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[jack@bogon dir]$ su - rose
密码:
最后一次失败的登录:三 3月 15 11:30:40 CST 2017tty2 上
最有一次成功登录后有 1 次失败的登录尝试。
Attempting to create directory /home/rose/perl5
[rose@bogon ~]$
[rose@bogon ~]$ cd /test/dir
[rose@bogon dir]$ ls
tom.txt
[rose@bogon dir]$ cat tom.txt
[rose@bogon dir]$ id rose
uid=1009(rose) gid=1009(rose) 组=1009(rose)
[rose@bogon dir]$ cat tom.txt
this is tom write
[rose@bogon dir]$
[root@bogon /]# chmod o+w /test/dir/tom.txt
[rose@bogon dir]$ vim tom.txt
[rose@bogon dir]$ cat tom.txt
this is tom write
this is rose write
7)将rose加入group1组,在rose用户下,验证rose用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的group1权限来配合验证过程)
[root@bogon /]# usermod -a -G group1 rose
[rose@bogon dir]$ cat tom.txt
this is tom write
this is rose write
[root@bogon /]# chmod 600 /test/dir/tom.txt
[rose@bogon dir]$ cat tom.txt
cat: tom.txt: 权限不够
8)切换到tom用户,验证tom用户对tom.txt的rwx权限(开启另外一个终端,依次修改tom.txt的user权限来配合验证过程)
[tom@bogon ~]$ cd /test/dir
[tom@bogon dir]$ ls
tom.txt
[tom@bogon dir]$ cat tom.txt
this is tom write
this is rose write
[tom@bogon dir]$ vim tom.txt
[tom@bogon dir]$ cat t
cat: t: 没有那个文件或目录
[tom@bogon dir]$ cat tom.txt
this is tom write
this is rose write
test over
[tom@bogon dir]$
[root@bogon /]# chmod 000 /test/dir/tom.txt
[tom@bogon dir]$ cat tom.txt
cat: tom.txt: 权限不够
总结:至此关于文件和目录的权限操作步骤已经练习完成,之所以说Linux是一个安全性较高的系统,就是因为Linux对系统文件的权限管理比较完善,在linux系统中一切皆文件,目录也可以看成是一个文件,跟文件一样,也可以修改其所属主和所属组的读写以及执行权限。关于文件及目录权限的管理在今后的生产环境中会经常遇到,希望大家细心处理不要弄错了!
本文转自 AltBoy 51CTO博客,原文链接:http://blog.51cto.com/altboy/1906952