用户管理命令详解
useradd [options] USERNAME
-u UID(>=500,并且与其他用户无重复)
-g GID(基本组,组必须事先存在)
-G GID,… (附加组,组必须事先存在)
useradd -G mygroup user3
-c “COMMENT”(指定注释信息)
-d /path/to/somedir(指定用户家目录,默认在home目录下会创建跟用户同名的家目录)
-r 添加系统用户(1-499,没有家目录)
useradd -c "Tony Blare" -d /home/blare user4
查看用户:tail -1 /etc/passwd
-s SHELL路径
/etc/shells:指定了当前系统可用的安全shell
环境变量:PATH,HISTSIZE,SHELL(用于表示用户当前shell)
echo $SHELL
-m -k 创建bash配置文件
-M 不为用户创建家目录
/etc/login.defs
userdel [option] USERNAME 删除用户
默认不会删除用户的家目录
-r: 同时删除用户的家目录
id: 查看用户的账号属性信息
[root@localhost ~]# echo $SHELL
/bin/bash
[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c
[root@localhost ~]# id user3
uid=1001(user3) gid=1001(user3) 组=1001(user3)
[root@localhost ~]# id -u user3
1001
[root@localhost ~]# id -G user3
1001
finger USERNAME: 查看用户账号信息
[root@localhost ~]# finger user3
Login: user3 Name: test add
Directory: /home/zhjn Shell: /bin/bash
Never logged in.
No mail.
No Plan.
usermod:修改用户账号属性(用法与useradd相同)
-u UID
-g GID
-G GID(若用户以前有一个附加组,则会覆盖原有附加组)
-a -G(原有附加组上追加一个附加组)
-d 原用户家目录下创建的文件无法访问了
-d -m:即指定新的家目录,又移动此前文件进新的家目录下去
-l 更改用户登录名
-L 锁定账号 -U 解锁账号
chsh:更改用户shell
chfn USERNAME:修改注释信息
密码管理:
passwd [USERNAME] : 管理员修改其他用户密码
--stdin 从标准输入读取密码
通过管道传送用户密码:
echo "redhat" | passwd --stdin user3
-l 锁定用户账号 -u 解锁用户账号
-n 密码最短使用期限 -d 删除用户密码
pwck 检查密码完整性
组管理:
创建组:groupadd
groupadd
-g GID
-r 添加系统组
groupmod
-g GID
-n GRPNAME
groupdel
gpasswd GRPNAME 给组加密码
切换到组:newgrp DRPNAME <–> exit
一组练习:
1.创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003,附加组为linux)
#groupadd -g 3003 distro
#groupadd linux
#useradd -u 2002 -g distro -G linux mandriva
2.创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh
#useradd -c "Fedora Community" -s /bin/tcsh fedora
3.修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora
#usermod -u 4004 -g linux -G distro,fedora mandriva
4.给fedora加密码,并设定其密码最短使用期限为2天,最长为50天
#passwd -n 2 -x 50 fedora
5.将mandriva的默认shell改为/bin/bash;
#usermod -s /bin/bash mandirva
6.添加系统用户hbase,且不允许其登录系统
#useradd -r -s /sbin/nologin hbase
change 改变用户密码过期信息
-d 最近一次的修改时间
-g 过期时间
-I 非活动时间
-m 最短使用期限
-M 最长使用期限
-w 警告时间
权限管理
r:
w:
x:
三类用户:
u:属主
g:属组
o:其他用户
chown:改变文件属主(只有管理员可以使用此命令)
#chown USERNAME file,...
-R 修改目录及其内部文件的属主
--reference=/path/to/somefile file,…更改somefile属主属组信息与指定file一样
#chown --reference=/tmp/abc /tmp/test
chown USERNAME:GRPNAME file,…
####chgrp GRPNAME file :改变文件属组
chmod:修改文件的权限
- 修改三类用户权限
chmod MODE file,…
-R
--reference=/path/to/somefile file,…
- 修改某类用户或某些类用户权限
u,g,o,a
chmod 用户类别=MODE file,…
#chmod g=rw /tmp/abc
#ls -l /tmp/abc
- 修改某类用户某位或某些位权限
u,g,o,a
chmod 用户类别 + | -MODE file
#chmod u+x,g-x /tmp/abc
三类用户同时加上执行权限
#chmod +x /tmp/abc
操作多位权限
#chmod u-wx /tmp/abc
练习:
1.新建一个没有家目录的用户openstack
#useradd -M openstack
2.复制/etc/skel为/home/openstack
#cp -r /etc/skel /home/openstack
3.改变/home/openstack及其内部文件的属组属主均为openstack
#chown -R openstack.openstack /home/openstack
4./home/openstack及其内部的文件,属组和其他用户没有任何访问权限
#chmod -R go= /home/openstack
验证 su -openstack 切换正常则无误
敲完一个命令一定要验证一下:
[root@localhost ~]# useradd -M openstack
[root@localhost ~]# finger openstack
Login: openstack Name:
Directory: /home/openstack Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@localhost ~]# ls /home
zhengjiani zhjn
[root@localhost ~]# id openstack
uid=1002(openstack) gid=1002(openstack) 组=1002(openstack)
[root@localhost ~]#
[root@localhost ~]# cp -r /etc/skel /home/openstack
[root@localhost ~]# ls -l /home
总用量 4
drwxr-xr-x. 3 root root 78 10月 13 11:18 openstack
drwx------. 16 zhengjiani zhengjiani 4096 10月 12 16:12 zhengjiani
drwx------. 3 user3 user3 78 10月 13 09:19 zhjn
[root@localhost ~]# ls -l /home/openstack/ -a
总用量 12
drwxr-xr-x. 3 root root 78 10月 13 11:18 .
drwxr-xr-x. 5 root root 53 10月 13 11:18 ..
-rw-r--r--. 1 root root 18 10月 13 11:18 .bash_logout
-rw-r--r--. 1 root root 193 10月 13 11:18 .bash_profile
-rw-r--r--. 1 root root 231 10月 13 11:18 .bashrc
drwxr-xr-x. 4 root root 39 10月 13 11:18 .mozilla
[root@localhost ~]# chown -R openstack.openstack /home/openstack/
[root@localhost ~]# ls -ld /home/openstack/
drwxr-xr-x. 3 openstack openstack 78 10月 13 11:18 /home/openstack/
[root@localhost ~]# ls -la /home/openstack/
总用量 12
drwxr-xr-x. 3 openstack openstack 78 10月 13 11:18 .
drwxr-xr-x. 5 root root 53 10月 13 11:18 ..
-rw-r--r--. 1 openstack openstack 18 10月 13 11:18 .bash_logout
-rw-r--r--. 1 openstack openstack 193 10月 13 11:18 .bash_profile
-rw-r--r--. 1 openstack openstack 231 10月 13 11:18 .bashrc
drwxr-xr-x. 4 openstack openstack 39 10月 13 11:18 .mozilla
[root@localhost ~]# chmod -R go= /home/openstack/
[root@localhost ~]# ls -ld /home/openstack/
drwx------. 3 openstack openstack 78 10月 13 11:18 /home/openstack/
[root@localhost ~]# ls -la /home/openstack/
总用量 12
drwx------. 3 openstack openstack 78 10月 13 11:18 .
drwxr-xr-x. 5 root root 53 10月 13 11:18 ..
-rw-------. 1 openstack openstack 18 10月 13 11:18 .bash_logout
-rw-------. 1 openstack openstack 193 10月 13 11:18 .bash_profile
-rw-------. 1 openstack openstack 231 10月 13 11:18 .bashrc
drwx------. 4 openstack openstack 39 10月 13 11:18 .mozilla
[root@localhost ~]# su openstack
[openstack@localhost root]$ exit
手动添加用户hive,基本组为hive(5000),附加组mygroup
nano /etc/group
hive:x:5000:
mygroup:hive
nano /etc/passwd
hive:x:5000:5000:Hive:/home/hive:/bin/bash
nano /etc/shadow
hive:!!:17817:0:99999:7:::
cp -r /etc/skel /home/hive
…
计算器:bc
openssl passwd
openssl passwd -1 -salt '12345678'
md5生成密码
umask遮罩码
#umask 022 指定用户umask
666-umask 创建文件
777-umask 创建目录
umask:023
文件:666-023=643可写可执行(文件默认没有执行权限,如果算出有执行权限,则整体+1)
目录:777-023=754
站在用户登录的角度来说,SHELL的类型:
登录式shell
正常通过某终端登录
su -USERNAME
su -l USERNAME
非登录式shell
su USERNAME
图形终端下打开命令窗口
自动执行的shell脚本
bash的配置文件:
全局配置
/etc/profile, /etc/profile.d/*.sh,/etc/bashrc
编辑其中任何一个,对所有用户都生效
个人配置
/.bash_profile,/.bashrc
作用范围越小越是最终生效的
profile类的文件:
设定环境变量
运行命令或脚本
bashrc类的文件:
设定本地变量
定义命令别名
登录式shell如何读取配置文件?
/etc/profile --> /etc/profile.d/*sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非登录式shell如何读取配置文件?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
定义别名 .bashrc
nano .bash_profile
退出登录logout