Linux 账号管理--鸟哥私房菜读书笔记

/etc/passwd 档案结构

每一行都代表一个账号,里头很多账号本来就是系统正常运作所必须的,我们可以简称他为系统账号。每一行使用『:』分隔开,共有七个部分,分别是:
1. 账号名称: 就是账号啦!用来对应 UID 的。例如 root 的 UID 对应就是 0 (第三字段);
2. 密码: 早期 Unix 系统的密码就是放在这字段上,后来将这个字段的密码数据放到/etc/shadow 中。所以这里你会看到一个『 x 』
3. UID: 这个就是使用者标识符。当UID 是 0 时,代表这个账号是『系统管理员』,默认 500 以下的数字让给系统作为保留账号只是一个习惯;
4. GID: 这个与 /etc/group 有关!其实 /etc/group 与 /etc/passwd 差不多,只是他是用来规范组名与 GID 的对应而已
5. 用户信息说明栏: 这个字段基本上并没有什么重要用途,只是用来解释这个账号的意义而已
6. 家目录: 这是用户的家目录
7. Shell:有一个 shell 可以用来替代成让账号无法取得 shell 环境的登入动作!那就是 /sbin/nologin 这个东西

/etc/shadow 档案结构

shadow 同样以『:』作为分隔符,共有九个字段,这九个字段的用途是这样的:
1. 账号名称: 由于密码也需要与账号对应
2. 密码: 这个字段内的数据才是真正的密码,而且是经过编码的密码 (加密) 
3. 最近修改密码的日期: 这个字段记录了变更密码的日期,这个是以 1970 年 1 月 1 日作为 1 而累加的日期
4. 密码不可被修改的天数:(与第 3 字段相比),0为不限制
5. 密码需要重新变更的天数:(与第 3 字段相比)你必须要在这个天数内重新设定你的密码,否则这个账号的密码将会『变为过期特性』
6. 密码需要变更期限前的警告天数:(与第 5 字段相比)),系统会依据这个字段的设定,发出『警告』信息给这个账号
7. 密码过期后的账号宽限时间(密码失效日):(与第 5 字段相比)密码有效日期为『更新日期(第3字段)』+『重新变更日期(第5字段)』,过了该期限后用户依旧没有更新密码,那该密码就算过期了。密码过期几天后,如果使用者还是没有登入更改密码,那么这个账号的密码将会『失效』, 亦即该账号再也无法使用该密码登入了。
8. 账号失效日期:这个账号在此字段规定的日期之后,将无法再使用。这个是以 1970 年 1 月 1 日作为 1 而累加的日期
9. 保留: 最后一个字段是保留的,看以后有没有新功能加入

/etc/group 档案结构

也是以『:』作为字段的分隔符,共分为四栏,每一字段的意义是:
1. 组名: 就是组名
2. 群组密码: 通常不需要设定,这个设定通常是给『群组管理员』使用的,同样的,密码已经移动到 /etc/gshadow 去
3. GID: 就是群组的 ID
4. 此群组支持的账号名称:某个账号想要加入此群组时,将该账号填入这个字段卲可。
有效群组(effective group)与初始群组(initial group)
每个使用者在他的 /etc/passwd 里面的第四栏有所谓的 GID 吧?那个 GID 就是所谓的『初始群组 (initial group) 』
groups: 有效与支持群组的观察,第一个输出的群组即为有效群组 (effective group) 了
newgrp: 有效群组的切换,你想要切换的群组必须是你已经有支持的群组,newgrp 这个指令可以变更目前用户的有效群组, 而且是另外以一个 shell 来提供这个功能的。

/etc/gshadow 档案结构

档案内同样还是使用『:』来作为字段的分隔字符,这个档案几乎与 /etc/group 一模一样:
1. 组名
2. 密码栏,同样的,开头为 ! 表示无合法密码,所以无群组管理员
3. 群组管理员的账号 (相关信息在 gpasswd 中介绍)
4. 该群组的所属账号 (与 /etc/group 内容相同)

账号管理

1. 新增与删除使用者: useradd, 相关配置文件, passwd, usermod, userdel

useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个组名就是我们上面提到的 initial group ,该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的组名则是这个账号还可以加入的群组。 这个选项与参数会修改 /etc/group 内的相关资料
-M :强制!不要建立用户家目录!(系统账号默认值)
-m :强制!要建立用户家目录!(一般账号默认值)
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定
-d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!
-r :建立一个系统的账号,这个账号的 UID 会有限制 (参考 /etc/login.defs)
-s :后面接一个 shell ,若没有指定则预设是 /bin/bash  
-e :后面接一个日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八字段, 亦即账号失效日的设定项目;
-f :后面接 shadow的第七字段项目,指定密码是否会失效。0为立刻失效, -1 为永远不失效(密码只会过期而强制于登入时重新设定而已。)

passwd [-l] [-u] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;
-u :与 -l 相对,是 Unlock 的意思
-S :列出密码相关参数,亦即 shadow 档案内的大部分信息。
-n :后面接天数,shadow 的第 4 字段,多久不可修改密码的天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要修改密码
-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i :后面接『日期』,shadow 的第 7 字段,密码失效日期

chage [-ldEImMW] 账号名
-l :列出该账号的详细密码参数;
-d :后面接日期,修改 shadow 第三字段(最近一次更改密码的日期),格式 YYYY-MM-DD
-E :后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
-I :后面接天数,修改 shadow 第七字段(密码失效日期)
-m :后面接天数,修改 shadow 第四字段(密码最短保留天数)
-M :后面接天数,修改 shadow 第五字段(密码多久需要进行变更)
-W :后面接天数,修改 shadow 第六字段(密码过期前警告日期)

usermod [-cdegGlsuLU] username
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据
-f :后面接天数,为 shadow 的第七字段。
-g :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group
-a :不 -G 合用,可『增加次要群组的支持』而非『设定』
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s :后面接 Shell 的实际档案,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID 数字,即 /etc/passwd 第三栏的资料;
-L :暂时将用户的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。
-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻

userdel [-r] username
-r :连同用户的家目录也一起删除

finger [-s] username:显示用户信息
chfn [-foph] [账号名]:修改用户信息
chsh [-ls]:修改用户Shell
id [username]:查询用户ID相关信息

2. 新增与删除群组

groupadd [-g gid] [-r] 组名
-g :后面接某个特定的 GID ,用来直接给予某个 GID  
-r :建立系统群组!与 /etc/login.defs 内的 GID_MIN 有关

groupmod [-g gid] [-n group_name] 群组名
-g :修改既有的 GID 数字;
-n :修改既有的组名

groupdel [groupname]:删除群组

gpasswd groupname
:若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow)
gpasswd [-A user1,...] [-M user3,...] groupname
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)
-M :将某些账号加入这个群组当中!
gpasswd [-rR] groupname
-r :将 groupname 的密码删除
-R :让groupname 的密码栏失效
gpasswd [-ad] user groupname
-a :将某位使用者加入到 groupname 这个群组;
-d :将某位使用者移除出 groupname 这个群组。

使用者身份切换

su [-lm] [-c 指令] [username]
- :单纯使用 - 如『 su - 』代表使用 login-shell 的变量档案读取方式来登入系统; 若使用者名称没有加上去,则代表切换为 root 的身份。
-l :与 - 类似,但后面需要加欲切换的使用者账号!也是 login-shell 的方式。
-m :表示『使用目前的环境设定,而不读取新使用者的配置文件』
-c :仅进行一次指令,所以 -c 后面可以加上指令
sudo [-b] [-u 新使用者账号]
-b :将后续的指令放到背景中让系统自行执行,而不与目前的 shell 产生影响
-u :后面可以接欲切换的使用者,若无此项则代表切换身份为 root 。
visudo 来修改 /etc/sudoers,让账号有sudo的权限

查询使用者: w, who, last, lastlog

使用者对谈: write, mesg, wall
write 使用者账号 [用户所在终端接口]:请按下 [crtl]-d 来结束输入
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值