设为首页 加入收藏

TOP

Linux学习-账号管理(一)
2017-10-16 18:20:43 】 浏览:2264
Tags:Linux 学习 账号 管理

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

我们登入系统时会输入 (1)账号与 (2)密码,所以建立一个可用的账号同样的也需要这两个数据。那账号可以使用 useradd 来新建用户, 密码的给予则使用 passwd 这个指令!这两个指令下达方法如下:


  • useradd
[root@study ~]# 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 为永远不失效(密码只会过期而强制于登入时重新设定而已。)

范例一:完全参考默认值建立一个用户,名称为 vbird1 [root@study ~]# useradd vbird1
[root@study ~]# ll -d /home/vbird1
drwx------. 3 vbird1 vbird1 74 Jul 20 21:50 /home/vbird1 
# 默认会建立用户家目录,且权限为 700 !这是重点!

[root@study ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird1:x:1003:1004::/home/vbird1:/bin/bash /etc/shadow:vbird1:!!:16636:0:99999:7:::
/etc/group:vbird1:x:1004: <==预设会建立一个与账号一模一样的群组名

简单的使用『 useradd 账号 』来建立 使用者即可。 CentOS 这些默认值主要会帮我们处理几个项目:

  • 在 /etc/passwd 里面建立一行与账号相关的数据,包括建立 UID/GID/家目录等;
  • 在 /etc/shadow 里面将此账号的密码相关参数填入,但是尚未有密码;
  • 在 /etc/group 里面加入一个与账号名称一模一样的组名;
  • 在 /home 底下建立一个与账号同名的目录作为用户家目录,且权限为 700

由于在 /etc/shadow 内仅会有密码参数而不会有加密过的密码数据,因此我们在建立使用者账号时, 还需要使用『 passwd 账号 』来给予密码才算是完成了用户建立的流程。如果由于特殊需求而需要 改变使用者相关参数时, 就得要透过上述表格中的选项来进行建立了,参考底下的案例:

范例二:假设我已知道我的系统当中有个组名为 users ,且 UID 1500 并不存在, 请用 users 为初始群组,以及 uid 为 1500 来建立一个名为 vbird2 的账号
[root@study ~]# useradd -u 1500 -g users vbird2
[root@study ~]# ll -d /home/vbird2
drwx------. 3 vbird2 users 74 Jul 20 21:52 /home/vbird2
[root@study ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group 
/etc/passwd:vbird2:x:1500:100::/home/vbird2:/bin/bash 
/etc/shadow:vbird2:!!:16636:0:99999:7:::

在这个范例中,我们建立的是指定一个已经存在的群组作为使用者的初始群组,因为群组已经存在,所以在 /etc/group 里面就不会主动的建立与账号同名的群组了!此外,我们也指定了特殊的 UID 来作为使用者的专属 UID。了解了一般账号后,我们来瞧瞧那啥是系统账号(system acount)。

范例三:建立一个系统账号,名称为 vbird3
[root@study ~]# useradd -r vbird3
[root@study ~]# ll -d /home/vbird3
ls: cannot access /home/vbird3: No such file or directorya <==不会主动建立家目录

[root@study ~]# grep vbird3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird3:x:699:699::/home/vbird3:/bin/bash /etc/shadow:vbird3:!!:16636::::::
/etc/group:vbird3:x:699:

一般账号应该是 1000 号以后,那用户自己建立的系统账号则一般 是小于 1000 号以下的。 所以在这里我们加上 -r 这个选项以后,系统就会主动将账号与账号同名 群组的 UID/GID 都指定小于 1000 以下,此外,由于系统账号主要是用来进行运作系统所需服务的权限设定, 所以系统账号默认都不会主动建立家目录的!

使用 useradd 建立使用者账号时,其实会更改不少地方,至少我们就 知道底下几个文件:

  • 用户账号与密码参数方面的文件:/etc/passwd, /etc/shadow
  • 使用者群组相关方面的文件:/etc/group, /etc/gshadow
  • 用户的家目录:/home/账号名称

  • useradd参考文档

useradd 的默认值可以使用底下的方法呼叫出来:

[root@study ~]# useradd -D
GROUP=100 <==预设的群组
HOME=/home <==默认的家目录所在目录
INACTIVE=-1 <==密码失效日,在 shadow 内的第 7 栏
EXPIRE= <==账号失效日,在 shadow 内的第 8 栏
SHELL=/bin/bash <==预设的 shell
SKEL=/etc/skel <==用户家目录的内容数据参考目录
CREATE_MAIL_SPOOL=yes <==是否主动帮使用者建立邮件信箱(mailbox)

这个数据其实是由 /etc/default/useradd 呼叫出来的!你可以自行用 vim 去观察该文件的内容。搭配上头刚刚谈过的范例一的运作结果,上面这些设定项目所造成的行为分别是:

  • GROUP=100:新建账号的初始群组使用 GID 为 100 者

系统上面 GID 为 100 者即是 users 这个群组,此设定项目指的就是让新设使用者账

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Linux命令学习:tar 下一篇centos 7.0 搭建LAMP环境

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目