一、用户:
前言:创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个与用户名同名的工作组。创建用户 user01 的时候指定其所属工作组 group01,例:useradd –g group01 user01。
- /etc/group 文件包含所有组
- /etc/passwd 系统存在的所有用户名
1. 增--创建用户 useradd 选项 用户名
添加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。
useradd 参数解释
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
–e 有效期 指定账号的有效期限,缺省表示永久有效
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
-f 指定在密码过期后多少天即关闭该账号。
-m 自动建立用户的登入目录
-M 不要自动建立用户的登入目录
-n 取消建立以用户名称为名的群组
useradd user02
-- 创建user02用户,同时默认创建了user02用户组并将user02用户添加进这个组。
useradd –e 12/30/2019 user03
-- 创建user03,指定有效期2019-12-30到期
useradd –u 600 user04
-- 创建user04,指定user04的UID
为 600
用户的缺省UID从500向后顺序增加,500以下作为系统保留账号,可以通过👆上面的指令指定UID。
useradd -s /bin/sh -g group01 -G admin,root user05
-- 新建了一个用户gem, 该用户的登录Shell是/bin/sh(有时要用/bin/bash),它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
passwd user05
-- 为新建用户user04设置密码
2. 删--删除用户 userdel 选项 用户名
userdel user02
-- 删除用户user02
userdel –r user03
-- 删除用户user03,同时删除他的工作目录
3. 改--修改用户账户 usermod 选项 用户名
修改用户账号就是更改用户的属性,如用户号、主目录、用户组、登录Shell等。
# 这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
-c, -d, -m, -g, -G, -s, -u以及-o等
# usermod独有的选项
-l 新用户名 指定一个新的账号,即将原来的用户名改为新的用户名。
usermod –l user001 user01
-- 将用户user01的登录名改为user001
usermod –g group01 user02
-- 将用户user02加入到 group01组中
usermod –d /Users/user003 user03
-- 将用户user03目录改为/users/user003
/usr为默认的用户主目录所在的父目录
4. 查看用户账户信息 id
、finger
id user01
-- 查看用户user01的UID和GID
finger user02
-- 查看用户的主目录、启动shell、用户名、地址、电话等信息
5. 用户权限管理 修改/etc/sudoers文件
-
1.0 赋予root权限
-方法一- 用root用户打开/etc/sudoers,去掉
#%wheel ALL=(ALL) ALL
行的注释; -
usermod -g root user01
添加user01到root组; - 现在可以用user01帐号登录,然后用命令
su –
,即可获得root权限进行操作。
-方法二
- 用root用户打开/etc/sudoers,在
root ALL=(ALL) ALL
行下面添加一行,如下: -
user01 ALL=(ALL) ALL
使user01拥有和root完全相同的权限。 - 现在可以用user01帐号登录,然后用命令
su –
,即可获得root权限进行操作
-方法三
- 修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下:
user01:x:0:33:user01:/data/webroot:/bin/bash
- 用root用户打开/etc/sudoers,去掉
-
2.0 赋予指定权限
假设需要赋予shutdown
指令的权限给用户user01或者组group01。
-方法一- 用root用户打开/etc/sudoers,添加如下;
-
user01 localhost=/sbin/shutdown
赋予用户user01执行shutdown
的超级用户权限 -
%group01 localhost=/sbin/shutdown
赋予组group01里的用户执行shutdown
的超级用户权限
-
3.0 文件权限管理
chmod [who] [+ | - | =] [mode] 文件名
示例:chmod +wx filename
给当前用户增加指定文件的读写权限,+ 是增加,- 是删除chmod 参数解释
who :给指定用户或组修改权限
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
+-= :操作符号
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
mode :表示权限,可用下述字母任意组合
r 可读,权值-4。
w 可写,权值-2。
x 可执行,权值-1。只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。
chmod +rwx index.html
或者chmod 777 index.html
-- 把index.html 文件修改为可写可读可执行。
chmod 777 *.*
-- 修改目录下所有文件属性可写可读可执行。
权限管理扩展
目录和文件的权限区别:
(1)有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入。
(2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。
(3)必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录。
(4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。chgrp 更改组:
chgrp -R 文件夹名称 组名
示例:chgrp -R foldname group01
chown 更改所有者:
chown -R 所有者用户名.组名 文件夹名称
示例:chown -R user01.group01 foldname
二、用户组:
前言:每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理,不同Linux系统对用户组的规定有所不同。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
1. 增--创建用户组 groupadd 选项 用户组
groupadd 参数解释
-g GID 指定新用户组的组标识号(GID)
-o 允许组ID号不惟一 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
-r 加入组ID号,低于499系统账号
-f 加入已经有的组时,发展程序退出
groupadd group01
-- 增加了一个新组group01,新组的组标识号是在当前已有的最大组标识号的基础上加1。
groupadd -g 101 group02
-- 增加了一个新组group02,同时指定新组的组标识号是101。
- 此时在/etc/passwd文件中会相应产生一个组ID(GID)是101的项目。
2. 删--删除用户组 groupdel 用户组
groupdel group01
-- 增加了一个新组group2,同时指定新组的组标识号是101。
3. 增删--为组添加和删除用户 gpasswd 选项 用户组
只有root和组管理员能够改变组的成员
gpasswd –a user01 group01
-- 把user01加入group01组。
gpasswd –d user01 group01
-- 把user01退出group01组。
4. 改--修改用户组 groupmod 选项 用户组
groupmod 参数解释
-g GID 指定新用户组的组标识号(GID)
-o 目录 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
-n 新用户组 将用户组的名字改为新名字
groupmod -g 102 group02
-- 将组group02的组标识号修改为102。
groupmod –g 10000 -n group03 group02
-- 将组group02的标识号改为10000,组名修改为group03。
5. 用户在多个用户组间切换 newgrp 用户组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp
切换到其他用户组,命令的参数就是目的用户组。newgrp用于登入另一个群组,指令类似login指令。
示例:newgrp root
-- 将当前用户切换到root用户组。
- 前提条件是root用户组确实是该用户的主组或附加组
6. 查看用户组信息
- 查看当前登录用户的组内成员
groups
- 查看 user01 用户所在的组,以及组内成员
groups user01
- 查看当前登录用户名
whoami