Linux 用户和用户组管理
Linux 系统是一个多用户多任务的分时操作系统, 任何一个要使用系统资源的用户, 都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统.
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪, 并控制他们对系统资源的访问; 另一方面也可以帮助用户组织文件, 并为用户提供安全性保护.
每个用户账号都拥有一个惟一的用户名和各自的口令.
用户在登录时键入正确的用户名和口令后, 就能够进入系统和自己的主目录.
实现用户账号的管理, 要完成的工作主要有如下几个方面:
用户账号的添加, 删除与修改.
用户口令的管理.
用户组的管理.
Linux 系统用户账号的管理
用户账号的管理工作主要涉及到用户账号的添加, 修改和删除.
添加用户账号就是在系统中创建一个新账号, 然后为新账号分配用户号, 用户组, 主目录和登录 Shell 等资源. 刚添加的账号是被锁定的, 无法使用.
1. 添加新的用户账号使用 useradd 命令, 其语法如下:
useradd 选项 用户名
参数说明:
选项:
-c comment 指定一段注释性描述.
-d 目录 指定用户主目录, 如果此目录不存在, 则同时使用 - m 选项, 可以创建主目录.
-g 用户组 指定用户所属的用户组.
-G 用户组, 用户组 指定用户所属的附加组.
-s Shell 文件 指定用户的登录 Shell.
-u 用户号 指定用户的用户号, 如果同时有 - o 选项, 则可以重复使用其他用户的标识号.
用户名:
指定新账号的登录名.
实例 1
# useradd -d /usr/sam -m sam
此命令创建了一个用户 sam, 其中 - d 和 - m 选项用来为登录名 sam 产生一个主目录 / usr/sam(/usr 为默认的用户主目录所在的父目录).
实例 2
# useradd -s /bin/sh -g group -G adm,root gem
此命令新建了一个用户 gem, 该用户的登录 Shell 是 /bin/sh, 它属于 group 用户组, 同时又属于 adm 和 root 用户组, 其中 group 用户组是其主组.
这里可能新建组:#groupadd group 及 groupadd adm
增加用户账号就是在 / etc/passwd 文件中为新用户增加一条记录, 同时更新其他系统文件如 / etc/shadow, /etc/group 等.
Linux 提供了集成的系统管理工具 userconf, 它可以用来对用户账号进行统一管理.
2. 删除帐号
如果一个用户的账号不再使用, 可以从系统中删除. 删除用户账号就是要将 / etc/passwd 等系统文件中的该用户记录删除, 必要时还删除用户的主目录.
删除一个已有的用户账号使用 userdel 命令, 其格式如下:
userdel 选项 用户名
常用的选项是 -r, 它的作用是把用户的主目录一起删除.
例如:
# userdel -r sam
此命令删除用户 sam 在系统文件中 (主要是 / etc/passwd, /etc/shadow, /etc/group 等) 的记录, 同时删除用户的主目录.
3. 修改帐号
修改用户账号就是根据实际情况更改用户的有关属性, 如用户号, 主目录, 用户组, 登录 Shell 等.
修改已有用户的信息使用 usermod 命令, 其格式如下:
usermod 选项 用户名
常用的选项包括 - c, -d, -m, -g, -G, -s, -u 以及 - o 等, 这些选项的意义与 useradd 命令中的选项一样, 可以为用户指定新的资源值.
另外, 有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号, 即将原来的用户名改为新的用户名.
例如:
# usermod -s /bin/ksh -d /home/z -g developer sam
此命令将用户 sam 的登录 Shell 修改为 ksh, 主目录改为 / home/z, 用户组改为 developer.
4. 用户口令的管理
用户管理的一项重要内容是用户口令的管理. 用户账号刚创建时没有口令, 但是被系统锁定, 无法使用, 必须为其指定口令后才可以使用, 即使是指定空口令.
指定和修改用户口令的 Shell 命令是 passwd. 超级用户可以为自己和其他用户指定口令, 普通用户只能用它修改自己的口令. 命令的格式为:
passwd 选项 用户名
可使用的选项:
-l 锁定口令, 即禁用账号.
-u 口令解锁.
-d 使账号无口令.
-f 强迫用户下次登录时修改口令.
如果默认用户名, 则修改当前用户的口令.
例如, 假设当前用户是 sam, 则下面的命令修改该用户自己的口令:
- $ passwd
- Old password:******
- New password:*******
- Re-enter new password:*******
如果是超级用户, 可以用下列形式指定任何用户的口令:
- # passwd sam
- New password:*******
- Re-enter new password:*******
普通用户修改自己的口令时, passwd 命令会先询问原口令, 验证后再要求用户输入两遍新口令, 如果两次输入的口令一致, 则将这个口令指定给用户; 而超级用户为用户指定口令时, 就不需要知道原口令.
为了系统安全起见, 用户应该选择比较复杂的口令, 例如最好使用 8 位长的口令, 口令中包含有大写, 小写字母和数字, 并且应该与姓名, 生日等不相同.
为用户指定空口令时, 执行下列形式的命令:
# passwd -d sam
此命令将用户 sam 的口令删除, 这样用户 sam 下一次登录时, 系统就不再询问口令.
passwd 命令还可以用 - l(lock)选项锁定某一用户, 使其不能登录, 例如:
# passwd -l sam
Linux 系统用户组的管理
每个用户都有一个用户组, 系统可以对一个用户组中的所有用户进行集中管理. 不同 Linux 系统对用户组的规定有所不同, 如 Linux 下的用户属于与它同名的用户组, 这个用户组在创建用户时同时创建.
用户组的管理涉及用户组的添加, 删除和修改. 组的增加, 删除和修改实际上就是对 / etc/group 文件的更新.
1. 增加一个新的用户组使用 groupadd 命令. 其格式如下:
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID).
-o 一般与 - g 选项同时使用, 表示新用户组的 GID 可以与系统已有用户组的 GID 相同.
实例 1:
# groupadd group1
此命令向系统中增加了一个新组 group1, 新组的组标识号是在当前已有的最大组标识号的基础上加 1.
实例 2:
# groupadd -g 101 group2
此命令向系统中增加了一个新组 group2, 同时指定新组的组标识号是 101.
2. 如果要删除一个已有的用户组, 使用 groupdel 命令, 其格式如下:
groupdel 用户组
例如:
# groupdel group1
此命令从系统中删除组 group1.
3. 修改用户组的属性使用 groupmod 命令. 其语法如下:
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号.
-o 与 - g 选项同时使用, 用户组的新 GID 可以与系统已有用户组的 GID 相同.
-n 新用户组 将用户组的名字改为新名字
实例 1:
# groupmod -g 102 group2
此命令将组 group2 的组标识号修改为 102.
实例 2:
# groupmod -g 10000 -n group3 group2
此命令将组 group2 的标识号改为 10000, 组名修改为 group3.
4. 如果一个用户同时属于多个用户组, 那么用户可以在用户组之间切换, 以便具有其他用户组的权限.
用户可以在登录后, 使用命令 newgrp 切换到其他用户组, 这个命令的参数就是目的用户组. 例如:
$ newgrp root
这条命令将当前用户切换到 root 用户组, 前提条件是 root 用户组确实是该用户的主组或附加组. 类似于用户账号的管理, 用户组的管理也可以通过集成的系统管理工具来完成.
从 0 到 1 学习网络安全 [目录]
来源: http://www.jianshu.com/p/88adaba39a96