不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

linux命令参数记忆有些模糊了,记录下。学而时习之,不亦说乎?


1、useradd命令
用来建立用户帐号和创建用户的起始目录,使用权限是终极用户。创建新用户useradd,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组。

格式:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

主要参数:

-d  指定用户的家目录(默认为/home/username)
-e  账户的到期时间,格式为 YYYY-MM-DD.
-u  指定该用户的默认 UID
-g  指定一个初始的用户基本组(必须已存在)
-G  指定一个或多个扩展用户组
-N  不创建与用户同名的基本用户组
-s  指定该用户的默认 Shell 解释器

用例:创建一个ftp用户,禁止其从终端登录,只能从ftp登录

所以需要设置用户的解释器为/sbin/nologin,这是终端解释器中的一员,一旦用户的解释器被设置为 nologin,则代表该用户不能登录到系统中

[root@bigdata-senior01 es]# useradd -d /home/esData -g es -s /sbin/nologin es.ftp
[root@bigdata-senior01 es]# cat /etc/passwd | grep es.ftp
es.ftp:x:1013:1004::/home/esData:/sbin/nologin

2、usermod命令
修改用户属性。用户的信息保存在/etc/passwd 文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用 usermod 命令修改已经创建的用户信息,诸如用户的 UID、基本/扩展用户组、默认终端等。

主要参数:

-c  填写用户账户的备注信息
-d -m
参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过
去
-e  账户的到期时间,格式为 YYYY-MM-DD
-g  变更所属用户组
-G  变更扩展用户组
-L  锁定用户禁止其登录系统
-U  解锁用户,允许其登录系统
-s  变更默认终端
-u  修改用户的 UID

用例:将es.ftp用户加入root组

[root@bigdata-senior01 es]# usermod -G root es.ftp
[root@bigdata-senior01 es]# id es.ftp
uid=1013(es.ftp) gid=1004(es) 组=1004(es),0(root)
[root@bigdata-senior01 es]# cat /etc/passwd | grep es.ftp
es.ftp:x:1013:1004::/home/esData:/sbin/nologin

扩展组加了root,基本组没有变化。用-g 参数修改用户的基本组 ID,用-G 参数修改用户扩展组 ID

3、passwd命令

修改用户密码、过期时间、锁定用户等操作,用

主要参数:

-l  锁定用户,禁止其登录
-u  解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如 echo "NewPassWord" | passwd --stdin Username
-d  使该用户可用空密码登录系统
-e  强制用户在下次登录时修改密码
-S  显示用户的密码是否被锁定,以及密码所采用的加密算法名称

用例:

#适合通过后台脚本的方式指定密码,避免交互式的二次确认
[root@bigdata-senior01 es]# echo "123@abcdef.com" | passwd --stdin amy 更改用户 amy 的密码 。 passwd:所有的身份验证令牌已经成功更新。

#锁定和解锁用户,并查看用户密码状态
[root@bigdata-senior01 es]# passwd -l xu.dm
锁定用户 xu.dm 的密码 。
passwd: 操作成功
[root@bigdata-senior01 es]# passwd -S xu.dm
xu.dm LK 2018-05-05 0 99999 7 -1 (密码已被锁定。) [root@bigdata-senior01 es]# passwd -u xu.dm
解锁用户 xu.dm 的密码。
passwd: 操作成功
[root@bigdata-senior01 es]# passwd -S xu.dm
xu.dm PS 2018-05-05 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

4、userdel命令

userdel只能删除用户,并不会删除相关的目录文件。userdel -r 可以删除用户及相关目录。

-f  强制删除用户
-r  同时删除用户及用户家目录

格式:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

5、groupadd命令         
指定群组名称来建立新的群组账号,需要时可以从系统中取得新的群组值。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

语法 groupadd [-g gid] [-o]] [-r] [-f] groupname

-f,--force 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与-g一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
-g,--gid GID 这个值必须是唯一的,除非使用-o选项。但必须是非负的。默认值是使用大于或等于GID_MIN的最小值,并且大于每个其他组。
-K,--key KEY=VALUE 重写/etc/login.defs默认值(GID_MIN,GID_MAX和其他)。可以指定多个K选项。示例:-K GID_MIN=100 –KGID_MAX=499。注意:-K GID_MIN=10,GID_MAX=499不能工作。
-o,--non-unique 此选项允许添加一个非唯一的GID值。
-p,--password PASSWORD 为新组使用此加密过的密码。默认为禁用密码。注意:不推荐使用这个选项,因为密码(或加密过的密码)会被用户通过列出这个过程而看到。您应该确保密码符合系统的密码政策。
-r,--system 创建一个系统组。新的系统组数字标识符在SYS_GID_MIN到SYS_GID_MAX范围内选择,定义在login.defs中而不是GID_MIN到GID_MAX。
-R,--root CHROOT_DIR 将修改应用到CHROOT_DIR目录,并使用配置。

文件:/etc/group,群组信息。etc/gshadow,群组加密信息。

实例
建立一个新组,并设置组ID加入系统:

#groupadd -g 344 cjh

此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

6、groupmod命令

用于修改用户组的相关信息,命令格式如下:

语法:groupmod [选现] 组名

选项:

-g GID:修改组 ID;
-n 新组名:修改组名;

例子:

[root@localhost ~]# groupmod -n testgrp group1
#把组名group1修改为testgrp
[root@localhost ~]# grep "testgrp" /etc/group
testgrp:x:502:

#注意GID还是502,但是组名已经改变
不过需要注意的是,用户名不要随意修改,组名和 GID 也不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议大家先删除旧的,再建立新的。

6、groupdel命令

上面的命令从/etc/group/etc/gshadow文件中删除组条目。成功后,该groupdel命令将不输出任何输出。

--help 显示帮助文档
--version 显示命令版本
实例 删除组 

[root@centos36 ~] groupdel group01    #删除组 [root@localhost david]
[root@centos36 ~] tail -n 2 /etc/group     #查看组信息,已经删除 webalizer:x:67: user01:x:502: