标签: UID/GID,passwd,shadow,群组管理groups/newgrp/groupadd/groupdel,帐号管理useradd/passwd/usermod/ userdel,列出或修改shell,用户信息设定与查阅chfn/finger/id,帐户切换su
1. UID与GID
当你要登入你的 Linux 主机的时候,那个 /etc/passwd 与 /etc/shadow 就必须要让系统读取,这两个文件是linux备份的重点;
>/etc/passwd
a. 当你要作另一个系统管理员账号时,你可以将该账号的 UID 改成 0 即可;这也就是说,一部系统上面的系统管理员不见得只有 root;
b. 如果你有个账号的使用空间特别的大,你想要将该账号的根目录移动到其它的硬盘去,没有错!可以在这里进行修改!预设的使用者根目录在 /home/yourIDname
c. Shell:所谓的 shell 是用来沟通人类下达的指令与硬件之间真正动作的界面!我们通常使用 /bin/bash 这个 shell 来进行指令的下达!登入 Linux 时为何预设是 bash 呢?就是这里设定的!
>/etc/shadow
a. /etc/passwd中的'x'项即表示该帐号密码移到这里加密了。
b. 只有 root 才可以读写此文件;
c. 你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?
====>这个时候就必须要使用到 /etc/shadow 这个数据了!我们知道密码是存在这个档案中的,所以只要你能够以各种可行的方法开机进入Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬盘顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空格符) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。
2. 群组: 有效与初始群组、groups, newgrp
>/etc/group ---->记录 GID 与群组名称的对应,包括该群组里面包含的所有用户帐号
[root@linux ~]#vi /etc/group root:x:0:root[,shmily_liu] ----->添加用户shmily_liu到root群组,注意[]部分不要空格
[shmily_liu@linux ~]$ groups ----->显示shmily_liu用户所处的所有群组,其中显示的第一个为有效群组
[dmtsai@linux ~]$ newgrp users ----->更改有效群组为users
>/etc/gshadow
3. 帐号管理
>新增与移除使用者: useradd, 相关设定档, passwd, usermod, userdel
[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] -[Mm] [-c 说明栏] [-d home] [-s shell] username -u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;
-g :后面接的那个群组名称就是我们上面提到的 initial group, 该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。
-G :后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改 /etc/group 内的相关资料!
-M :强制!不要建立使用者家目录
-m :强制!要建立使用者家目录!
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~
-d :指定某个目录成为家目录,而不要使用默认值;
-r :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)(UID在500以下)
-s :后面接一个 shell ,预设是 /bin/bash
相关设定档: /etc/default/useradd
---->useradd不使用参数时,会自动参考这个文档来建立用户的初始环境,该档案的内容如下:
GROUP=100 <==预设的群组
HOME=/home <==预设的家目录所在目录
INACTIVE=-1 <==在 /etc/shadow 内的第 7 栏
EXPIRE= <==在 /etc/shadow 内的第 8 栏
SHELL=/bin/bash <==预设的 shell
SKEL=/etc/skel <==使用者家目录的内容数据参考目录
而对于群组GROUP,若无指定initial group,则系统会主动建立一个与账号相同的群组名称,以该群组作为使用者的initial group! 而上面的/etc/skel/*就是新建用户根目录的参考目录,即新建目录后的内容都是从这里复制过来的,所以通过编辑/skel/下的.bashrc,可以自定义新建用户的根目录内容!事实上,了解了系统的运作过程,及useradd指令执行中会参考和修改到的文件,我们自己动手直接修改这几个档案也是可以的。
[root@linux ~]# passwd [useraccount] ---->root下设定或强制修改其他用户密码
[shmily_liu@linux ~]# passwd ---->shmily_liu重设自己的密码
[root@linux ~]# usermod [-cdegGlsuLU] username ---->用于进行账号相关数据的微调,等效于直接修改/etc/passwd或/etc/shadow相应字段.
[root@linux ~]# userdel [-r] username ---->删除用户及其相关档案: /etc/passwd /etc/shadow /home/username
-r :连同使用者的家目录也一起删除
一般而言,如果该账号只是暂时不启用的话,那么将 /etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟
该账号相关的数据都会留下来!使用 userdel 的时机通常是你真的确定不要让该用户在主机上面使用任何数据了!
>一般用户功能: chfn, chsh ---->以上都是系统管理员才能使用的指令,对于一般用户可以做以下操作.
[shmily_liu@linux ~]$ chsh [-ls] -l :列出目前系统上面可用的 shell ,其实就是 /etc/shells 的内容!
-s :设定修改自己的 Shell
[root@linux ~]# chfn [-foph] -f :后面接完整的大名;
-o :办公室的房间号码;
-p :办公室的电话号码;
-h :家里的电话号码!
[root@linux ~]# finger [-s] username ---->查阅chfn设定的用户信息
-s :使用长串数据输出格式。
[root@linux ~]# id [username] ---->查询某人或自己的相关 UID/GID 等等的信息
>新增与移除群组
[root@linux ~]# groupadd [-g gid] [-r] -g :后面接某个特定的 GID ,用来直接给予某个 GID ~
-r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关
[root@linux ~]# groupdel [groupname]
>帐户切换
[root@linux ~]# su [-lcm] [username] ---->su切换过程中要注意用户环境的变化,是否读入欲切换的身份者的环境参数档案!
- :如果执行 su - 时,表示该使用者想要变换身份成为 root ,且使用 root 的环境设定参数档,如 /root/.bash_profile 等等。
-l :后面可以接使用者,例如 su -l dmtsai ,这个 -l 好处是,可使用欲变换身份者他的所有相关环境设定档。
-m :-m 与 -p 是一样的,表示使用目前的环境设定,而不重新读取新使用者的设定档。
-c :仅进行一次指令,所以 -c 后面可以加上指令!
>查询使用者: w, who, last, lastlog
>使用者对谈: talk, mesg, wall
>使用者邮件信箱: mail
每个 Linux 主机上面的使用者都具有一个 mailbox, 都会放置在 /var/spool/mail 里面
[shmily_liu@linux ~]$ mail root -s "nice to meet you" ---->给root发信,"..."为标题
[shmily_liu@linux ~]$ mail ---->收信
(shmily_soc)