Linux 学习之路 (三):用户管理命令详解

用户管理命令详解

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

猜你喜欢

转载自blog.csdn.net/nicezheng_1995/article/details/83037856