标签:linux基础命令
描述:
用户类型分为管理员(root)和普通用户(user),其中普通用户又可以分为系统用户和登录用户。而用户标识是根据其ID来区分的,简称为UID,每个用户所对应的ID都不同,也是唯一的,就如同每个人的身份证号是不同的。每个用户的UID及其它信息存放于系统的/etc/passwd文件里,名称解析库,可用cat /etc/passwd命令查看。
[root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ping:x:500:500::/home/ping:/bin/bash
共有7个字段,每个字段之间用“:”分隔,每个字段所表示的含义为:
root:用户名
X:加密后的密码(也可以是占位符X)
0:用户的ID号
0:用户所属主组的GID号
root:注释信息
/root:用户的家目录
/bin/shell:用户登录时默认shell程序
Linux系统采用16bints二进制数字来为用户提供UID(0-65635)。
管理员UID:0 普通用户UID:1-65635
系统用户UID:1-499(Centos6),1-999(Centos7)
登录用户UID:500-60000(Centos6),1000-60000(Centos7)
每个用户都有各自的组,简称为:group。每个组也有其对应的ID,也是唯一的,简称为GID。每个用户的GID及其它信息存放于系统的/etc/group文件里,名称解析库,可用cat /etc/group命令查看。
[root@localhost ~]# cat /etc/group root:x:0:gentoo bin:x:1:bin,daemon,gentoo ping:x:500:
共有4个字段,每个字段之间用“:”分隔,每个字段的含义为:
root:用户组名称
X:加密后的组密码
0:所属组的GID号
root:此用户组支持的账号名称
其中root的GID为0
每个用户所属的组按照不同的分类方法可分为以下几类:
1,管理员组和普通用户组。其中普通用户组又分为系统组和登录组
管理员组GID:0 普通用户GID:1-6535
2,用户的基本组和附加组
3,私有组(组名同用户名,且只包含一个用户)
公共组(组内包含了多个用户)
用户如果需要登录主机以取得shell的环境来工作时,必须要在计算机前面利用tty1~tty7的终端机提供的login接口,并输入其账号与密码才能够登录。此过程称为认证过程。通过比对事先存储在/etc/passwd和/etc/shadow中的信息,与用户登录时所提供的信息是否一致。
在系统里的/etc/shadow文件中存放着用户的密码信息,只有管理员root才用权限查看
[root@localhost ~]# cat /etc/shadow root:$6$FE7Q336W$g/ry4M33OTbPef0/VHR/YwFg9zdA7QBeJGj.jKGw9tkWR3Wk1DMNBykFuNZef/xbSqRSacRD/MQp.Zr5KKK2D.:17008:0:99999:7::: bin:*:15980:0:99999:7:::
共有9个字段,每个字段之间用“:”分隔,每个字段的含义为:
1,用户名:2,加密后的密码:3,最近一次修改密码的日期:4,最短使用期限:5,最长使用期限:6,警告天数:7,过期期限:8,账号失效日期:9,保留字段
用户组的密码信息存放于系统/etc/gshadow中,只有管理员root才有权限查看,可使用cat /etc/gshadow命令查看
[root@localhost ~]# cat /etc/gshadow root:::gentoo ping:!::
共有4个字段,每个字段之间用“:”分隔,每个字段含义:
1,用户组名: 2,密码列,开头为!表示无合法密码,所以无用户组管理员: 3,组管理员列表,更改组密码和成员: 4,以当前组为附加组的用户列表(分隔符为逗号)
说明:
Passwd命令:修改用户密码 用户密码文件/etc/shadow
密码使用策略:
1,应该使用随机密码
2,最短长度不低于8位
3,应该包括大写字母、小写字母、数字、标点符号四类中的三类
4,须定期更改
密码的加密算法:
对称加密、非对称加密、单向加密
md5: message digest 128bits
sha: secure hash alorithm 160bints
sha: secure hash alorithm 224bints
sha: secure hash alorithm 256bints
sha: secure hash alorithm 384bints
sha: secure hash alorithm 512bints
passwd [OPTIONS] UserName: 修改指定用户的密码,仅root 用户权限
passwd: 修改自己的密码;
常用选项:
-l: 锁定指定用户
-u: 解锁指定用户
-d:清除用户密码
-e: 强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays :最大使用期限
-w warndays :设置警告期限
-i inactivedays :设定非活动期限;
--stdin :从标准输入接收用户密码;
echo " PASSWORD " | passwd --stdin USERNAME
示例:
1,修改用户自己的密码:
[root@localhost ~]# passwd Changing password for user root. New password: BAD PASSWORD: it is WAY too short BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully.
2,清除指定用户密码
[root@localhost ~]# passwd -d ping Removing password for user ping. passwd: Success
3,从标准输入接受用户密码
[root@localhost ~]# echo "123456" | passwd --stdin ping Changing password for user ping. passwd: all authentication tokens updated successfully
Useradd命令:添加新用户 (具体用法可参考man useradd)
[root@localhost~]# useradd [option] login
其中选项有:
-u, --uid UID 指定用户的UID
-g, --gid GRIOUP 指定基本组ID,但此组须事先存在
-G,--groups GROUP1[,GROUP2,..] 指明用户所属的附加组,多个组之间用“,”分隔,添加附加组须事先存在
-c, --comment COMMENT 指明注释信息
-d,--home HOME-DIR 以指定的路径为用户的家目录;通过复制/etc/skel此目录并重命名实现,指定的家目录路径若事先存在,则不会为用户复制环境配置文件
-s,--shell SHELL 指定用户的默shell,可用的所有shell列表存储于/etc/shells文件中
-r,---system 创建系统用户
注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
-D, 显示创建用户的默认配置
-D+选项: 修改默认选项的值修改的结果保存于/etc/default/useradd文件中
示例:创建新用户user50, uid为555,注释信息为“hello user50", 家目录为/home/user50,
shell为/bin/bash
[root@localhost ~]# useradd -u 555 -G gentoo -c "hello user50" -s /bin/bash user50 [root@localhost ~]# id user50;grep user50 /etc/passwd uid=555(user50) gid=555(user50) groups=555(user50),501(gentoo) user50:x:555:555:hello user50:/home/user50:/bin/bash
新建用户的相关文件和命令:
/etc/default/useradd
/etc/skel/*
示例:批量创建完用户后,需将/etc/skel/*下的文件复制到该用户的家目录下
[root@localhost ~]# cp -r /etc/skel/.[^.]* /testdir/a [root@localhost ~]# su - a [a@localhost ~]$ ls -a . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla
/etc/login.defs
newusers passwd 格式文件 批量创建用户
示例:创建用户a,b,c,d,e,f五个用户
[root@localhost ~]# vim user.txt [root@localhost ~]# cat user.txt a:x:2000::hello a:/testdir/a:/bin/bash b:x:2000::hello b:/testdir/b:/bin/bash c:x:2000::hello c:/testdir/c:/bin/bash d:x:2000::hello d:/testdir/d:/bin/bash e:x:2000::hello e:/testdir/e:/bin/bash [root@localhost ~]# newusers user.txt [root@localhost ~]# tail -5 /etc/passwd a:x:2000:2000:hello a:/testdir/a:/bin/bash b:x:2000:3011:hello b:/testdir/b:/bin/bash c:x:2000:3012:hello c:/testdir/c:/bin/bash d:x:2000:3013:hello d:/testdir/d:/bin/bash e:x:2000:3014:hello e:/testdir/e:/bin/bash
chpasswd 批量修改用户口令
示例:修改上面五个用户的密码
[root@localhost ~]# vim pass.txt [root@localhost ~]# cat pass.txt a:a123 b:b123 c:c123 d:d123 e:e123 [root@localhost ~]# cat pass.txt | chpasswd [root@localhost ~]# tail -5 /etc/shadow a:$6$zksrb/hGnN./ro.c$Tz8eyweWg6u0r.U8Tz5eC8M0SsUJIdhwdvyuLEwEzRxpxz9sC9ZTRyw5.2J.RVkjuUZIoVHJErSIiKqgSx31I.:14101:0:99999:7::: b:$6$ZrgX2L9cD$Sz4dNtMuwJRhBrRZYbIWlz3JQ2QvFRmUZVHtnh6yw0GOfnfXyF2PA32RSK7ERa/JmEYcxJHGQQM5XZs.MaPP./:14101:0:99999:7::: c:$6$A7zZB6kmIGQn3QG/$zeBLSC1Ph3jemx9JURRHL2nsCd8CivcVxJsNUWlkBHKqlC/k1ebXzmJQXZkPMmyCsTcrBM7vyKbH72ABiGTOl0:14101:0:99999:7::: d:$6$Q2kk4/9m$nmBglyeL2u8pxbe5.jS2kA1G9Hcoavu6lGHa6YYCWm7i14XFIBDDFL3//LDqzFsetzP2r.wZdU3t6KQZvqzMS.:14101:0:99999:7::: e:$6$cP1fr/KReDq/$yhTinFy6AaTLXjzdnxSPO1MX2P6uDsZCsr4fX1yLsb5YENjQgpcUCsjaMyEKFHHC5kwJb.aFrXSMwGH7dmjjM0:14101:0:99999:7:::
usermod 命令:修改用户属性
格式: usermode [OPTION] login
-u UID: 新UID
-g GID: 新基本组
-G GROUP1[,GROUP2,...[,GROUPN]]] :新附加组,原来的附加
组将会被覆盖;若保留原有,则要同时使用-a 选项,表示append; ;
-s SHELL :新的默认SHELL; ;
-c ‘COMMENT‘ :新的注释信息;
-d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移
动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m 选项
-l login_name: 新的名字;
-L: lock 指定用户, 在/etc/shadow 密码栏的增加 !
-U: unlock 指定用户,将 将 /etc/shadow 的 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限;
示例:修改用户user50的uid为450, 附加组为ping, 注释信息为“good luck to you”, 家目录为/testdir/user50, shell为/bin/csh
[root@localhost ~]# usermod -u 450 -G ping -c "good lock to you " -d /testdir/user50 -s /bin/csh user50 [root@localhost ~]# grep user50 /etc/passwd user50:x:450:555:good lock to you :/testdir/user50:/bin/csh
userdel命令:删除用户
userdel [OPTION]... login
-r: 删除家目录
id命令:显示用户的有效ID
id [option].. [user]
其中选项有:
-u: 仅显示有效UID
-g: 仅显示用户的基本组ID
-G: 仅显示用户所属的所有组的ID
-n: 仅显示用户名字而非ID
[root@localhost ~]# id user50 uid=450(user50) gid=555(user50) groups=555(user50),500(ping)
su命令:switch user 切换用户
登录式切换:通过读取目标用户的配置文件来重新初始化用户环境
su - USERNAME
su -l USERNAME
[root@localhost ~]# su - ping [ping@localhost ~]$ pwd /home/ping [ping@localhost ~]$ echo $USER ping
非登录式切换:不会读取目标用户的配置文件进行初始化用户环境
su USERNAME
[root@localhost ~]# su ping [ping@localhost root]$ ls ls: cannot open directory .: Permission denied [ping@localhost root]$ pwd /root [ping@localhost root]$ whoami ping [ping@localhost root]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [ping@localhost root]$ echo $USER ping
-c ‘COMMAND’ 仅以指定用户身份运行此处指定的命令
[ping@localhost root]$ su - root -c ‘cat /etc/shadow‘ Password: root:$6$6Sq0.SQE$k6whOyJPZsFPHiJHJY/0PqYJI9sWJ9CWouvCwwPcpkfeL5e1MN/6SAdu6l1uKU.n7Hw0N3QaGzeaiXITfffpB0:14101:0:99999:7::: bin:*:15980:0:99999:7::: [ping@localhost root]$
以某用户的身份执行完操作后,需exit或者logout命令退出当前终端
groupadd命令:添加组
groupadd [option] GROUP_NAME
其中选项有:
-g, GID 指定GID,默认是上一个组的GID+1
-r 创建系统组
[root@localhost ~]# grep liming /etc/group liming:x:3011:
groupmod命令:修改组属性
group [option] GROUP
-g GID 修改GID
-n NEW_NAME 修改组名
gpasswd命令:修改组密码
格式: gpasswd [OPTION] GROUP
-a user: 将user 添加至指定组中;
-d user: 从指定组中移除用户user
-A user1,user2,...: 设置有管理权限的用户列表
newgrp 命令:临时切换基本组;如果用户本不属于此组,则需要组密码
groupdel命令:删除组
groupdel [option] GROUP
-g, --group groupname 组更改为指定组 ( 只有root)
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表
示例:删除liming这个组
[root@localhost ~]# groupdel liming
结束语:
本篇内容是本人上课总结和整理的内容,若有错误或遗漏请各位路过的达人指出!
标签:linux基础命令
原文地址:http://suifengsky.blog.51cto.com/11393684/1833526