一、保存用户信息的文件
- 1 /etc/passwd
root:x:0:0:root:/root:/bin/bash pwftp:x:500:500::/alidata/www/wwwroot/:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin mysql:x:501:400::/home/mysql:/sbin/nologin
一共7项,都用:分隔
1 | 用户名 | |
2 | 密码 | 真正的密文保存在/etc/shadow中 |
3 | UID | 用户id |
4 | GID | 组id |
5 | 账户信息 | 这个账户有什么样的意义 |
6 | 家目录 | 在这个目录中,用户拥有全部的权限 |
7 | shell类型 | /sbin/nologin 非登录用户 /bin/bash 一般用户使用的shell /bin/false 无法登录 |
2. 新增用户
useradd [-u UID] [-g GID] [-d HOME] [-mM] [-s shell] username
案例:
useradd –u 500 –g 500 –d /home/pwftp -s /sbin/nologin pwftp 建立了一个用户id为500,组id为500的用户,用户名pwftp,主目录/home/pwftp, 使用的/sbin/nologin这个shell是不可以登录的. 如果不想系统自动创建mysql用户家目录/home/mysql,则要使用-M参数 |
3. 删除用户
userdel 用户名
案例:
userdel mysql 删掉mysql这个用户. 加入mysql用户组里只存在mysql这一个用户的话,这个组也会被同时删掉 如果mysql登录状态的,那么得等它登出了再删除 [root @test /root]# userdel testing <==只有砍掉 /etc/passwd 与 /etc/shadow 的该账号内容; [root @test /root]# userdel -r testing<==连该账号的 /home/testing 与 /var/spool/mail/testing 都砍掉! 这个指令下达的时候要小心了!通常我们要移除一个账号的时候,你可以手动的将 /etc/passwd 与 /etc/shadow 里头的该账号取消即可!一般而言,如果该账号只是『暂时不启用』的话,那么将 /etc/shadow 里头最后倒数一个字段设定为 0 就可以让该账号无法使用,但是所有跟该账号相关的数据都会留下来!使用 userdel 的时机通常是『你真的确定不要让该用户在主机上面使用任何数据了!』 停用一个账号: #vi /etc/shadow /pwftp 找到用户所在行 shift+a 移动到本行的行尾并编辑状态 做如下的修改: pwftp:$6$fkOSovyP$FDrG1XFhNOvy.ZnsDhrbN7Jnj/Aw1rmN2T8UewW.dcS3nrKbbkRTl.JP4/fh/UFXZ.5Jq61WiLwLYQDssUpbv1:16367:0:99999:7::0: 再次使用pwftp用户登录时,得到的提示如下图: |
4. 修改用户
usermod -参数 参数值 用户名
usermod –s /bin/bash mysql
修改mysql用户的shell为bash,这样mysql也能登陆了 其实吧,如果要求改用户的家目录,shell,或者组信息,还是直接修改/etc/passwd文件来的简单直接。 |
[root @test /root]# useradd testing <==直接以默认的数据建立一个名为 testing 的账号
[root @test /root]# useradd -u 720 -g 100 -M -s /bin/bash testing <==以自己的设定建立账号
这个指令影响/使用的文件可多了呢,都有以下这些:
5. 建立预设的账号:
建立账号时,如果没有特殊的限定,通常我们只使用 『 useradd username 』就可以建立一个名为username的账号了!
不过你知道预设账号的基本设定吗?嘿嘿嘿嘿!!基本设定就在/etc/default/useradd 和/etc/login.defs 这两个档案中!
在 login.defs 里头有点像底下这样:
MAIL_DIR /var/spool/mail <==邮件默认目录摆放处 PASS_MAX_DAYS 99999 <==密码需要变更的时间 PASS_MIN_DAYS 0 <==密码多久需要变更 PASS_MIN_LEN 5 <==密码的最小长度(这个可以改大一些吧!) PASS_WARN_AGE 7 <==密码快要失效之前几天发警告讯息? UID_MIN 500 <==预设帐号最小起算的 UID 数目(最小为 500 ) UID_MAX 60000 <==最大的 UID 限制 GID_MIN 500 <==GID 限制 GID_MAX 60000 <==GID 限制 CREATE_HOME yes <==是否建立家目录,默认是要建立家目录(若为 mail server 可以取消此项目) |
几乎可以设定的都在这里设定了!所以需要了解一下这个档案!另外,如果你是专门开启 mail server 的,那么由于使用者账号不需要登入主机,
所以也就不需要给予家目录,这个时候最后一项 GREATE_HOME 或者可以设定为 no !此外,当你以默认的数据建立账号时,该账号的 UID 将会取目前在
/etc/passwd 当中『最大的(其实是小于 60000)』那一个 UID + 1 即是预设帐号的 UID 啰!
而至于 useradd 内容则为:
GROUP=100 <==预设的使用者群组为 100 ,查看一下 /etc/group 时,这个组名为 users 呢! HOME=/home <==默认用户的家目录建立的目录 INACTIVE=-1 <==是否不启动,设定为 -1 自然就是启动啦! EXPIRE= <==是否需要设定『死亡』时间?如果你希望该用户在期限到之后就不许登入,此项可以设定天数。 SHELL=/bin/bash <==预设的 Shell 为何? SKEL=/etc/skel <==用户家目录的内容! |
在这个项目中,最需要了解的就是 SKEL 啦!当你建立一个名为 testing 的账号时,默认的家目录会是『 /home/testing 』这个目录,
而这个目录的内容就是由 /etc/skel 所 copy 过去的!所以『当你想要让用户的默认家目录内容更动时,可以直接将要更动的数据写在 /etc/skel 当中!』
6. 以自己的条件建立账号:
如果要以自己的条件建立账号的时候,一般我都是喜欢手动的增加啦!
不然就是先以上面的那一个例子增加一个账号之后,在去手动修改 /etc/passwd 等等的档案!
二、保存用户密码的文件
1. /etc/shadow
1 账户名 2 密码 3 上次密码修改日期 4 密码不可被更改的天数 5 密码需要被变更的天数 6 密码需要被变更前的警告期限 7 账号失效期限 8 账号取消日期 设为<1970到系统当前日期的数字时,表示账号已经取消,则该不能使用。 9 保留
三、保存群组信息的文件
1. /etc/group
- 这个档案可以让你直接将账号所要支持的群组加进来!例如你有一个账号名称为 myaccount ,你想要让这个账号可以支持 root 这个群组,则你可以直接在 /etc/group 里面加入呢!很方便,不需要动用的指令呦!
root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm adm:x:4:root,adm,daemon |
- 支持的账号名称
1 | 2 | 3 | 4 |
组名 | 群组密码 | 群组 ID (GID) |
|
四、保存群组密码的文件
1. /etc/gshadow
root:::rootbin:::root,bin,daemon
daemon:::root,bin,daemon
sys:::root,bin,adm
adm:::root,adm,daemon
五、增加使用者的一般步骤:
新增使用者的时候,如果该使用者所属的群组不存在,则得(1)先新增群组;
然后(2)再新增使用者账号。当然,如果要删除群组时,则必须要反过来,先删除使用者才能删除群组!这点请大家留意啰!
更详细的教程请访问 鸟哥的linux私房菜 http://u2l.info/3iltdg