Linux 用户管理命令
来源:互联网 发布:javascript 反编译 编辑:程序博客网 时间:2024/06/08 19:39
- useradd
[root@www ~]# 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@www ~]# useradd vbird1[root@www ~]# ll -d /home/vbird1drwx------ 4 vbird1 vbird1 4096 Feb 25 09:38 /home/vbird1# 默认会创建用户家目录,且权限为 700 !这是重点![root@www ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group/etc/passwd:vbird1:x:504:505::/home/vbird1:/bin/bash/etc/shadow:vbird1:!!:14300:0:99999:7:::/etc/group:vbird1:x:505: <==默认会创建一个与账号一模一样的群组名
- passwd
刚刚我们讲到了,使用 useradd 创建了账号之后,在默认的情况下,该账号是暂时被封锁的, 也就是说,该账号是无法登陆的,你可以去瞧一瞧 /etc/shadow 内的第二个字段就晓得啰~ 那该如何是好?直接给他配置新口令就好了嘛!对吧~配置口令就使用 passwd !
[root@www ~]# passwd [--stdin] <==所有人均可使用来改自己的口令[root@www ~]# passwd [-l] [-u] [--stdin] [-S] \> [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号 <==root 功能选项与参数:--stdin :可以透过来自前一个管线的数据,作为口令输入,对 shell script 有帮助!-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使口令失效;-u :与 -l 相对,是 Unlock 的意思!-S :列出口令相关参数,亦即 shadow 文件内的大部分信息。-n :后面接天数,shadow 的第 4 字段,多久不可修改口令天数-x :后面接天数,shadow 的第 5 字段,多久内必须要更动口令-w :后面接天数,shadow 的第 6 字段,口令过期前的警告天数-i :后面接『日期』,shadow 的第 7 字段,口令失效日期范例一:请 root 给予 vbird2 口令[root@www ~]# passwd vbird2Changing password for user vbird2.New UNIX password: <==这里直接输入新的口令,屏幕不会有任何反应BAD PASSWORD: it is WAY too short <==口令太简单或过短的错误!Retype new UNIX password: <==再输入一次同样的口令passwd: all authentication tokens updated successfully. <==竟然还是成功修改了!
useradd -s /sbin/nologin 用户名
第一种方法:vi /etc/passwd
找到要修改的用户那几行,修改掉即可。此法很暴力,建议慎用。
/etc/passwd文件格式
登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序
用此方法修改了用户宿主目录后,会出现某些异常,如:bash环境异常,需要将用户原宿主目录下的隐藏文件拷贝到更改后的宿主目录即可
cp /原宿主目录/.* /目标目录
第二种:usermod
usermod -d /usr/newfolder -u uid 用户账号
-u后面一定要接uid啊,不是username
- userdel
这个功能就太简单了,目的在删除用户的相关数据,而用户的数据有:
- 用户账号/口令相关参数:/etc/passwd, /etc/shadow
- 使用者群组相关参数:/etc/group, /etc/gshadow
- 用户个人文件数据: /home/username, /var/spool/mail/username..
整个命令的语法非常简单:
[root@www ~]# userdel [-r] username选项与参数:-r :连同用户的家目录也一起删除范例一:删除 vbird2 ,连同家目录一起删除[root@www ~]# userdel -r vbird2
这个命令下达的时候要小心了!通常我们要移除一个账号的时候,你可以手动的将 /etc/passwd 与 /etc/shadow 里头的该账号取消即可!一般而言,如果该账号只是『暂时不激活』的话,那么将 /etc/shadow 里头账号失效日期 (第八字段) 配置为 0 就可以让该账号无法使用,但是所有跟该账号相关的数据都会留下来! 使用 userdel 的时机通常是『你真的确定不要让该用户在主机上面使用任何数据了!』
另外,其实用户如果在系统上面操作过一阵子了,那么该用户其实在系统内可能会含有其他文件的。 举例来说,他的邮件信箱 (mailbox) 或者是例行性工作排程 (crontab, 十六章) 之类的文件。 所以,如果想要完整的将某个账号完整的移除,最好可以在下达 userdel -r username 之前, 先以『 find / -user username 』查出整个系统内属于 username 的文件,然后再加以删除吧!
虽然我们登陆 Linux 主机的时候,输入的是我们的账号,但是其实 Linux 主机并不会直接认识你的『账号名称』的,他仅认识 ID 啊 (ID 就是一组号码啦)。 由于计算机仅认识 0 与 1,所以主机对于数字比较有概念的;至于账号只是为了让人们容易记忆而已。 而你的 ID 与账号的对应就在 /etc/passwd 当中。
- /etc/passwd 文件结构
这个文件的构造是这样的:每一行都代表一个账号,有几行就代表有几个账号在你的系统中! 不过需要特别留意的是,里头很多账号本来就是系统正常运行所必须要的,我们可以简称他为系统账号, 例如 bin, daemon, adm, nobody 等等,这些账号请不要随意的杀掉他呢! 这个文件的内容有点像这样:
[root@www ~]# head -n 4 /etc/passwdroot:x:0:0:root:/root:/bin/bash <==等一下做为底下说明用bin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologin
每一行使用『:』分隔开,共有七个咚咚,分别是:
- 账号名称:
就是账号啦!用来对应 UID 的。例如 root 的 UID 对应就是 0 (第三字段); - 口令:
早期 Unix 系统的口令就是放在这字段上!但是因为这个文件的特性是所有的程序都能够读取,这样一来很容易造成口令数据被窃取, 因此后来就将这个字段的口令数据给他改放到 /etc/shadow 中了。所以这里你会看到一个『 x 』,呵呵! - UID:
这个就是使用者标识符啰!通常 Linux 对于 UID 有几个限制需要说给您了解一下:
id 范围该 ID 使用者特性0
(系统管理员)当 UID 是 0 时,代表这个账号是『系统管理员』! 所以当你要让其他的账号名称也具有 root 的权限时,将该账号的 UID 改为 0 即可。 这也就是说,一部系统上面的系统管理员不见得只有 root 喔! 不过,很不建议有多个账号的 UID 是 0 啦~1~499
(系统账号)保留给系统使用的 ID,其实除了 0 之外,其他的 UID 权限与特性并没有不一样。默认 500 以下的数字让给系统作为保留账号只是一个习惯。
由于系统上面启动的服务希望使用较小的权限去运行,因此不希望使用 root 的身份去运行这些服务, 所以我们就得要提供这些运行中程序的拥有者账号才行。这些系统账号通常是不可登陆的, 所以才会有我们在第十一章提到的 /sbin/nologin 这个特殊的 shell 存在。
根据系统账号的由来,通常系统账号又约略被区分为两种:
1~99:由 distributions 自行创建的系统账号;
100~499:若用户有系统账号需求时,可以使用的账号 UID。500~65535
(可登陆账号)给一般使用者用的。事实上,目前的 linux 核心 (2.6.x 版)已经可以支持到 4294967295 (2^32-1) 这么大的 UID 号码喔!上面这样说明可以了解了吗?是的, UID 为 0 的时候,就是 root 呦!所以请特别留意一下你的 /etc/passwd 文件!- GID:
这个与 /etc/group 有关!其实 /etc/group 的观念与 /etc/passwd 差不多,只是他是用来规范组名与 GID 的对应而已!- 用户信息说明栏:
这个字段基本上并没有什么重要用途,只是用来解释这个账号的意义而已!不过,如果您提供使用 finger 的功能时, 这个字段可以提供很多的信息呢!本章后面的 chfn 命令会来解释这里的说明。- 家目录:
这是用户的家目录,以上面为例, root 的家目录在 /root ,所以当 root 登陆之后,就会立刻跑到 /root 目录里头啦!呵呵! 如果你有个账号的使用空间特别的大,你想要将该账号的家目录移动到其他的硬盘去该怎么作? 没有错!可以在这个字段进行修改呦!默认的用户家目录在 /home/yourIDname- Shell:
我们在第十一章 BASH 提到很多次,当用户登陆系统后就会取得一个 Shell 来与系统的核心沟通以进行用户的操作任务。那为何默认 shell 会使用 bash 呢?就是在这个字段指定的啰! 这里比较需要注意的是,有一个 shell 可以用来替代成让账号无法取得 shell 环境的登陆动作!那就是 /sbin/nologin 这个东西!这也可以用来制作纯 pop 邮件账号者的数据呢!- /etc/shadow 文件结构
我们知道很多程序的运行都与权限有关,而权限与 UID/GID 有关!因此各程序当然需要读取 /etc/passwd 来了解不同账号的权限。 因此 /etc/passwd 的权限需配置为 -rw-r--r-- 这样的情况, 虽然早期的口令也有加密过,但却放置到 /etc/passwd 的第二个字段上!这样一来很容易被有心人士所窃取的, 加密过的口令也能够透过暴力破解法去 try and error (试误) 找出来!
因为这样的关系,所以后来发展出将口令移动到 /etc/shadow 这个文件分隔开来的技术, 而且还加入很多的口令限制参数在 /etc/shadow 里头呢!在这里,我们先来了解一下这个文件的构造吧! 鸟哥的 /etc/shadow 文件有点像这样:
[root@www ~]# head -n 4 /etc/shadowroot:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7::: <==底下说明用bin:*:14126:0:99999:7:::daemon:*:14126:0:99999:7:::adm:*:14126:0:99999:7:::
基本上, shadow 同样以『:』作为分隔符,如果数一数,会发现共有九个字段啊,这九个字段的用途是这样的:
- 账号名称:
由于口令也需要与账号对应啊~因此,这个文件的第一栏就是账号,必须要与 /etc/passwd 相同才行! - 口令:
这个字段内的数据才是真正的口令,而且是经过编码的口令 (加密) 啦! 你只会看到有一些特殊符号的字母就是了!需要特别留意的是,虽然这些加密过的口令很难被解出来, 但是『很难』不等于『不会』,所以,这个文件的默认权限是『-rw-------』或者是『-r--------』,亦即只有 root 才可以读写就是了!你得随时注意,不要不小心更动了这个文件的权限呢!
另外,由于各种口令编码的技术不一样,因此不同的编码系统会造成这个字段的长度不相同。 举例来说,旧式的 DES 编码系统产生的口令长度就与目前惯用的 MD5 不同(注2)!MD5 的口令长度明显的比较长些。由于固定的编码系统产生的口令长度必须一致,因此『当你让这个字段的长度改变后,该口令就会失效(算不出来)』。 很多软件透过这个功能,在此字段前加上 ! 或 * 改变口令字段长度,就会让口令『暂时失效』了。 - 最近更动口令的日期:
这个字段记录了『更动口令那一天』的日期,不过,很奇怪呀!在我的例子中怎么会是 14126 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 而累加的日期,1971 年 1 月 1 日则为 366 啦! 得注意一下这个数据呦!上述的 14126 指的就是 2008-09-04 那一天啦!了解乎? 而想要了解该日期可以使用本章后面 chage 命令的帮忙!至于想要知道某个日期的累积日数, 可使用如下的程序计算:[root@www ~]# echo $(($(date --date="2008/09/04" +%s)/86400+1))14126
上述命令中,2008/09/04 为你想要计算的日期,86400 为每一天的秒数, %s 为 1970/01/01 以来的累积总秒数。 由于 bash 仅支持整数,因此最终需要加上 1 补齐 1970/01/01 当天。- 口令不可被更动的天数:(与第 3 字段相比)
第四个字段记录了:这个账号的口令在最近一次被更改后需要经过几天才可以再被变更!如果是 0 的话, 表示口令随时可以更动的意思。这的限制是为了怕口令被某些人一改再改而设计的!如果配置为 20 天的话,那么当你配置了口令之后, 20 天之内都无法改变这个口令呦!- 口令需要重新变更的天数:(与第 3 字段相比)
经常变更口令是个好习惯!为了强制要求用户变更口令,这个字段可以指定在最近一次更改口令后, 在多少天数内需要再次的变更口令才行。你必须要在这个天数内重新配置你的口令,否则这个账号的口令将会『变为过期特性』。 而如果像上面的 99999 (计算为 273 年) 的话,那就表示,呵呵,口令的变更没有强制性之意。- 口令需要变更期限前的警告天数:(与第 5 字段相比)
当账号的口令有效期限快要到的时候 (第 5 字段),系统会依据这个字段的配置,发出『警告』言论给这个账号,提醒他『再过 n 天你的口令就要过期了,请尽快重新配置你的口令呦!』,如上面的例子,则是口令到期之前的 7 天之内,系统会警告该用户。- 口令过期后的账号宽限时间(口令失效日):(与第 5 字段相比)
口令有效日期为『升级日期(第3字段)』+『重新变更日期(第5字段)』,过了该期限后用户依旧没有升级口令,那该口令就算过期了。 虽然口令过期但是该账号还是可以用来进行其他工作的,包括登陆系统取得 bash 。不过如果口令过期了, 那当你登陆系统时,系统会强制要求你必须要重新配置口令才能登陆继续使用喔,这就是口令过期特性。
那这个字段的功能是什么呢?是在口令过期几天后,如果使用者还是没有登陆更改口令,那么这个账号的口令将会『失效』, 亦即该账号再也无法使用该口令登陆了。要注意口令过期与口令失效并不相同。- 账号失效日期:
这个日期跟第三个字段一样,都是使用 1970 年以来的总日数配置。这个字段表示: 这个账号在此字段规定的日期之后,将无法再使用。 就是所谓的『账号失效』,此时不论你的口令是否有过期,这个『账号』都不能再被使用! 这个字段会被使用通常应该是在『收费服务』的系统中,你可以规定一个日期让该账号不能再使用啦!- 保留:
最后一个字段是保留的,看以后有没有新功能加入。命 令:usermod
功能说明:修改用户帐号。
语 法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参 数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。usermod 不 允 许 你 改 变 正 在线 上 的 使 用 者 帐 号 名 称 。 当 usermod 用 来 改 变 user ID, 必 须 确 认 这 名 user 没 在 电 脑 上 执 行 任 何 程 序。 你 需 手 动 更 改 使 用 者 的 crontab 档 。 也 需 手 动 更 改 使 用 者 的 at 工 作 档 。阅读全文0 0- Linux 用户管理命令
- linux用户管理命令
- Linux用户管理命令
- Linux用户管理命令
- linux用户管理命令
- linux用户管理命令
- Linux用户管理命令
- Linux 用户管理命令
- linux用户管理命令
- Linux用户管理命令
- linux用户管理命令
- Linux用户管理命令
- Linux 用户管理命令
- LINUX用户管理命令
- Linux 用户管理命令
- Linux 用户管理命令
- Linux 用户管理命令
- Linux 用户管理命令
- Keepalived 工作原理和配置说明
- 2018秋招面试题总结(软件开发类)
- Mysql 初始化 及 密码管理
- Nginx + php
- Nginx location配置 正则表达式
- Linux 用户管理命令
- 常用命令 find chmod
- 【51nod】1412 AVL树的种类
- Tomcat 配置2 tomcat-users.xml
- df du 文件空间管理 命令
- Iptables linux防火墙
- 底层解析web安全软件
- Apache 访问控制
- 设置允许外网访问MySQL
原创粉丝点击热门IT博客热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 羽绒棉服女中长款 圆领羊毛衫 山羊绒羊毛衫 恒源祥的羊毛衫怎么样 女式纯羊毛衫 女式羊毛衫批发 加厚羊毛衫 女式中长款羊毛衫 恒源祥羊毛衫男款 丝光羊毛衫 羊水少 羊水破 羊水过多 羊水 羊水破了 羊水多 羊水少原因 羊水浑浊 羊水过少 羊水颜色 羊水图片 破羊水图片 孕妇羊水少 怎么补羊水 羊水作用 破羊水 羊水偏少 羊水正常值 羊水的作用 羊水暗区 羊水指数和羊水深度 羊水为什么叫羊水 羊水什么样 流羊水 羊水早破 什么是羊水 羊水量 羊水试纸 羊水混浊 羊水是什么 羊水破裂 - 口令不可被更动的天数:(与第 3 字段相比)
- GID: