Linux学习日记12-Linux账号和身份管理
时间:2007-04-04 来源:junzero
Linux账号和身份管理
账号管理:
一、登录Linux主机的时候,它要做的动作:
1. 先找寻 /etc/passwd 里面是否有这个账号?如果没有则跳出,如果有的话则将该账号对应的 UID ( User ID )与 GID
( Group ID )读出来,另外,该账号的家目录与 shell 设定也一并读出;
2. 再来则是核对密码表啦!这时 Linux 会进入 /etc/shadow 里面找出对应的账号与 UID,然后核对一下你刚刚输入的
密码与里头的密码是否相符?
3. 如果一切都 OK 的话,就进入 Shell 控管的阶段啰!
二、认识UID、GID、SUID与SGID
1.UID:User ID,使用者账号;
2.GID:Group ID,组账号;
Linux主机里面的每个用户都会有其UID和GID
3.SUID和SGID,执行者操作该文件的时候拥有文件所有着的权限。
三、认识/etc/passwd文档与/etc/shadow文档
这两个文档是账号管理的重要文件
1. passwd的构造:
这里面的每一行代表一个账号,每行中的不同项目的内容都用[:]隔开。那这些项目都是:
a. 账号名称。
b. 密码:这边都用x代替,真正的密码被放在shadow文件中了
c. UID:账号的数字ID,其中系统管理员的UID是0。
d. GID:这跟/etc/group有关。
e. 说明:对账号做监督的说明,没有什么实际用途。
f. 家目录:这是使用者的家目录。
g. shell:规定该用户使用什么shell进行登录
2. shadow的构造:
这里面的内容同样被[:]分隔成不同的项目,包括
a. 账号名称:
b. 密码:这是将密码加密后的数字。如果密码项的第一个字符是‘*’,则表示这个账号并不会被用来登录。(如果密码丢失,可以在开机选择系统的时候,通过Grub修改登录的方式为单人维护模式,进去后修改/etc/shadow文件中相关用户的密码为空,保存重启,密码为空)。
c. 上次修改密码的日期:是相对1970年1月1日所过的天数。
d. 密码不可被修改的天数。
e. 密码需要重新更改的天数。
f. 密码需要更改期限前的警告日期。
g. 账号失效期限
h. 账号取消日期
i. 保留。
四、认识/etc/group和/etc/gshadow文档
/etc/group:用来配置账号支持的组群,即一个组群中有哪些账号。
1) 组群名称;
2) 组群密码:通常不用设置。如果设置了密码,密码保存在/etc/gshadow中。
3) 组群ID
4) 包含的账号名称。
/etc/gshadow:用于不在group中的用户,临时加入到group中。
五、添加使用者的一般步骤
添加使用者的时候,如果所添加的使用者所属的组群不在,则会先添加新的组群,然后再添加使用者的账号。要删除组群的话则要先删除组群中的用户,再删除组群。
六、相关指令
1.groupadd:添加组群
会修改/etc/group和/etc/gshadow文档,可以直接修改这两个文档来添加组群而不使用指令的
2.groupdel:删除组群
3.useradd:添加用户
这个指令将会对下面的文件做修改:
• /etc/passwd
• /etc/shadow
• /etc/group
• /etc/gshadow
• /etc/skel
• /etc/default/useradd
• /etc/login.defs
2. userdel:删除用户
3. chsh:change shell的缩写,更改使用者的shell
4. chfn:change finger information:修改用户属性。
这个东西同样会修改/etc/passwd的内容:
这里面的第5栏就是添加的用户说明。
如果安装了Linuxconf套件,就可以使用稍微智能化的工具
5. userconf:可以修改
• User accounts
• Group definitions
• Change root password
七、密码管理与设定
passwd:可以修改用户的密码,root可以修改所有人的密码,但是其它人只能修改自己的密码。
八、使用者身份切换:
在远程登录的时候,往往不让以root的身份登录,如果要远程管理该怎样去做?答案是:以一般用户登录,然后赋予该用户root权限。这时候可以使用su或者sudo来实现。
用su改变用户身份要的是root密码。
用sudo的话就不用输入root的密码只要输入用户自己的密码就好了,但是这也是有前提条件的,那就是在/etc/sudoers这个文档中有相关设置
要修改这个文档只能用visudo指令才行,不能直接用vi修改的!
九、使用者查询
几个简单的查看使用者信息的指令
• id 查询使用者的 UID, GID 及所拥有的群组;
• groups 查询使用者能够支持的群组;
• finger 查询使用者的一些相关讯息,例如电话号码等。
十、手动添加使用者
步骤:
1. 先建立所需要的群组( vi /etc/group )
2. 建立账号的各个属性( vi /etc/passwd )
3. 将 passwd 与 shadow 同步化 ( pwconv )
4. 建立该账号的密码 ( passwd acount )
5. 建立使用者家目录 ( cp -r /etc/skel /home/account )
6. 更改家目录属性 ( chown -R account.group /home/account )