useradd命令:添加用户
useradd [选项] 登录名
-c,--comment COMMENT:设定用户的注释信息,一般为用户的Full Name;
-d,--home /PATH/TO/HOME_DIR:设定用户家目录路径;目标事先不能存在,否则会有警告,
不会得到skel相关文件给用户;
-g,--gid GROUP:设定用户的基本组组名或GID;
-G,--groups GROUP1[GROUP2,...[GROUPN]]:设定用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;
-m,--create-home:强制创建家目录;
-M:不创建用户家目录,即使系统在/etc/login.defs中的设置 CREATE_HOME)为yes;
-r, --system:创建系统用户;
-s,--shel SHELL:设定用户的默认shell(是shell的路径,要位于/etc/shells文件中);
用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd中的SHELL变量选择默认的登录shell;
-u, --uid UID:设定用户的UID;用户 ID 的数字值。此值必须为唯一的,非负的,除非使用了-o选项,默认使
用大于等于 UID_MIN,且大于任何其他用户ID 最小值;
-o,--non-unique:允许使用重复的UID创建用户账号;
用法:
useradd -u 3003 myuser
id myuser
useradd -g 4004 ubuntu:设定ubuntu用户组为4004组,但组4004要先存在;
useradd -u 3100 -G 4004 mint:设定mint用户uidWie3100,附加组为4004;
useradd -s /bin/csh fedora:设定默认shell为csh;
useradd -M hadoop:设定不创建家目录;
useradd -r hive:系统用户没有家目录;
tail -1 /etc/passwd //查看用户信息
注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中;
/etc/shells:中/sbin/nologin和/usr/sbin/nologin是不能用的;
usermod命令:修改(用户)账号信息
usermod [选项] 登录名
-c, --comment COMMENT:修改注释信息;
-d, --home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;
-e, --expiredate EXPIRE_DATE:修改禁用日期;格式为YYYY-MM-DD;
-f, --inactive INACTIVE:修改非活动期;
-g, --gid GROUP:修改基本组GID;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改附加组,修改时会覆盖原有的附加组,一同使用-a选项,
表示为用户追加添加新的附加组;
-a, --append:将用户添加到附加组。只能和 -G 选项一起使用;
-l, --login NEW_LOGIN:修改当前用户的用户名;
-s, --shell SHELL:修改用户登录的shell;
-u, --uid UID:修改用户UID,这个值必须是唯一的,除非使用了-o选项,必须是非负值;
-o,--non-unique:用户ID改为非唯一值;
-L, --lock:锁定用户密码,这会在用户加密的密码之前放置一个!;
-U, --unlock:解锁用户的密码;这将移除加密的密码之前的!;
用法:
usermod -g 2000 hadoop:修改用户组为2000,组2000必须先存在
userdel命令:删除用户
userdel [选项] 登录名
-r, --remove:删除用户时,同时一并删除用户家目录和用户邮箱(用户邮箱在/var/spool/mail/目录下);
用法:
userdel ubuntu:删除用户后,默认邮箱不删除;
userdel -r mint:删除用户后同时删除邮箱;
ls /var/spool/mail/:默认创建用户都会自动为用户创建邮箱;
groupadd命令:添加组
groupadd [选项] group
-g, --gid GID:指明组GID;
Centos5,6:500+
Centos7:1000+
-r, --system:创建系统组;
Centos5,6:1-499
Centos7:1-999
用法:
groupadd testgrp
groupadd -g 2000 mygrp
groupadd -r hive
groupadd -rg 306 mariadb
tail -l /etc/group //查看组信息
groupmod命令:修改组信息
groupmod [选项] GROUP
-g, --gid GID:修改组GID;
-n, --new-name NEW_GROUP:修改组名;
用法:
groupmod -g 3000 mygrp
groupdel命令:删除组
groupdel [选项] GROUP
用法:
groupdel hive
groupdel mygrp1
groupdel mygrp
groupdel testgrp
passwd命令:密码管理命令
passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays]
[-i inactivedays] [--stdin] [username]
-l:锁定密码;
-u:解锁密码;
-f:强制;
-d:清除密码;
-e:修改禁用日期;
-n:修改密码最短使用期限;
-x:修改密码最长使用期限;
-w:修改密码过期后警告期限;
-i:修改非活动期限;
--stdin:从标准输入设置密码;
用法:
passwd:修改自己(当前登录用户)的密码;
passwd USERNAME:修改指定用户密码;
id命令:查看用户相关id信息
id [OPTION]... [USER]
显示结果包括UID、基本组GID和所有组(包括附加组和基本组);
-u:仅查看UID;
-g:仅查看基本组GID;
-G:查看所属的所有组ID;
-n:显示名称,而非ID;
用法:
id -u magedu
id -G magedu
id magedu
su命令:切换用户
切换时有两种机制:
(1)不读取目标用户的配置文件(非登录式切换,半切换);
su USERNAEM
(2)读取并执行用户的配置文件(登录式切换,完全切换);
su -l USERNAME
su - USERNAME
用法:
su magedu:当前路径目录不会改变;
pwd:显示结果为/root
su - magedu:改变家目录;
gpasswd命令:为组添加密码
gpasswd [选项] group
-a, --add USERNAME:向组中添加用户;
-d, --delete USERNAME:从此组中移除用户;
chage命令:change age,更改用户密码过期信息
chage [选项] 登录名
-E, --expiredate EXPIRE_DATE:更改密码过期期限,格式为YYYY-MM-DD;
-I, --inactive INACTIVE:更改密码非活动期限;
-m, --mindays MIN_DAYS:更改密码最短使用期限,0为可在任何时间改密码(下次登录);
-M, --maxdaysMAX_DAYS:更改密码最长使用期限;
chmod命令:主要作用:修改文件模型位change file mode bits;
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
-R, --recursive:递归修改;慎重使用;
权限管理:
r:可获取文件的数据(读权限);
w:可修改文件的数据(写权限);
x:可将此文件运行为进程(执行权限);
赋权表示:
chmod ug=rw fstab:更改文件权限
chmod og=r fstab
授权表示:
chmod u+x fstab:更改文件权限
chmod g+w fstab
chmod +x fstab:文件有执行权限
八进制授权表示:
chmod 700 fstab:一次性赋权给ugo为700;
chown命令:仅管理员有权限,即能改文件的属主又能改属组,也可同时改
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
-R, --recursive:递归修改;
用法:
chown gentoo fstab:仅改文件的属主;
chown :mageedu fstab:仅改文件的属组;
chgrp命令:仅管理员有权限,仅能改文件的属组
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
用法:
chgrp gentoo fstab:修改文件属组;
练习:
1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为 "Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo
2、显示/etc目录下,所有以.d结尾的文件或目录
ls -A /etc/*.d
3、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
ls -A /etc/{m,n,r,p}*.conf
4、创建/app/rootdir目录,并复制/root下所有文件到该目录内, 要求保留原有权限
mkdir /app/rootdir
cp -p ./* /app/rootdir
5、使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
mkdir -p /tmp/a{1/{a,b},2}
mkdir -p {x,q}_{y,z}