账号管理
- 登入Linux主机流程
- 先查找/etc/passwd中是否有这个账号,如果没有则跳出,有则将其UID,GID,和该账号的目录及对应的shell设定读出来
- 核对密码,主要从/etc/shadow
- 进入shell
所以说在登入Linux时,必须读取上诉两个文件,这也是狠毒攻击者会将特殊账号写到 /etc/passwd中的原因
- 认识/etc/passwd和/etc/shadow
- passwd中的如: root : x : 0 : 0 : root : /root : /bin : bash
其中分别为:账户名:密码:UID:GID:说明:根目录:Shell,下面解释一些项:
密码已被放与/etc/shadow中;UID:1-500为系统预留的ID(1-65525个),500-65525供一般用户使用; - shadow里的文件如:root : jsdfkdshfi12q3”
这里知道第二个是加密后的密码即可,且如果此项是第一个是*表明这个账号不会用来登陆,所以玩意有一天你的某个用户不乖了(哈哈),可以在这个文件中多加一个”*”,那他就无法登陆了。
- passwd中的如: root : x : 0 : 0 : root : /root : /bin : bash
- 认识/etc/group和/etc/gshadow文件
认识账号和密码使用的是 /etc/passwd与/etc/shadow,而认识群组使用的是/etc/group和/etc/gshadow
- 看看group文件如:bin : x : 1 : root,bin,daemon,分别是群组名称:密码:GID:支持的账号民称如果你想让myaccount也属于bin群组,在后加上,myaccount即可(不要有空格)
- 增加用户的一般步骤
- group [-g GID] 组名,这个指令作用到的文件/etc/group和/etc/gshadow ,其实也可以直接修改这两个文件的
- groupdel 组名
- useradd 简单的如:useradd test,(没什么特殊要求,一般用这个就好)复杂的如下useradd [-u UID] [-g GID] [-d HOME] [-mM] [-s shell] username,这个指令改变很多文件如:/etc/passwd , /etc/shadow , /etc/group , /etc/gshadow , /etc/skel , /etc/default/useradd , /etc/login.defs 注意很多默认设定都在/etc/default/useradd,/etc/login.defs中。
- 删除账号用userdel [-r] 用户名 (加上-r是将该/home/用户名 和 /var/spool/mail/用户名 目录一起删掉)加上-r选项要注意,一般而言,若只是暂时不用该账号,值需将 /etc/shadow字段设为0即可让此用户无法使用,但相关数据会保留
- chsh与chfn (不常用)
- chsh [-l] [-s name] -l : 列出当前机器上所有能用的shell名称,-s:将当前shell变换成name,其实要想更改shell,直接在/etc/passwd中就行
- chfn相当于用户个性化吧,会让你输入很多相关信息。
用户身份切换、查询
- su
用在一般用户转换成root用户,需要注意的有:切换后虽然是root用户,但环境(如PATH,mail及其他环境变量)还是没有变,还是当初登入的那个用户;为了避免一般用户使用root的管理指令,通常Linux都会将指令分类在两个主要的目录中,分别是/bin和/sbin。/sbin存放的大都是root用户管理系统的指令。 - sudo [-u username] [command] 以username的身份执行其command命令,关于sudo需在/etc/sudoers中设定,注意设定该有的选项。关于设定详细可见/etc/sudoers文件
- id 用户名
参考 《鸟哥的Linux私房菜》
- id 用户名