欢迎各位兄弟 发布技术文章
这里的技术是共享的
/etc/passwd:
用户名:密码:UID:GID:注释:家目录:默认SHELL
/etc/shadow:
用户名:密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告时间:非活动时间:过期时间
useradd [options] USERNAME
-u UID 尚未使用 且>=500
-g GID 或组名称 (基本组) (无论基本组,还是附加组,这个组必须存在)
-G GID, ......(额外组或附加组)(组必须事先存在) (不限定一个)(多个,彼此之间用逗号隔开即可)
-c "COMMENT" (中间有空格,用双引号引起来) 指定注释
-d /path/to/directory 指定家目录路径
-s 指定 SHELL 路径 (/bin/bash,或 /bin/tcsh或 .......) /etc/shells:指定了当前系统可用的安全 shell
-m -k 创建家目录且把默认配置文件复制过来 (一般两个一起使用)强制为用户创建家目录 (/etc/skel 骨架文件(里面包含配置文件)复制过来)
-M 不创建家目录 即使/etc/login.defs指定了设置家目录为是
-r 给系统创建一个系统用户 (id号为 1-499之间)(会自动在1-499之间找一个id) (通常不能登录系统 而且没有家目录,这是它的自动属性,通常都是单独使用的)
环境变理:
PATH
HISTORY
SHELL 用来保存当前用户的默认shell
# useradd -u 1000 user1
useradd:UID 1000 并不唯一
# useradd -u 1003 user1
[root@ebs-22618 ~]# tail -1 /etc/passwd
user1:x:1003:1004::/home/user1:/bin/bash (1003 是最大的 id 的下一个来使用的)
# useradd -u 1005 user2
[root@ebs-22618 ~]# tail -1 /etc/passwd
user2:x:1005:1005::/home/user2:/bin/bash
一般情况下 默认的组id 与 用户id 一致(可能不一致,因为这个组id 被占用)
# useradd -g hellosa user3
useradd:“hellosa”组不存在
# useradd -g mygroup user3 (mygroup 这个组已经存在)
# tail -1 /etc/passwd
user3:x:1006:1003::/home/user3:/bin/bash
# useradd -G mygroup user4
# !tail
tail -1 /etc/passwd
user4:x:1007:1007::/home/user4:/bin/bash
# tail /etc/group
# useradd -c "tom Blare" -d /home/blare user5
# tail -1 /etc/passwd
user5:x:1008:1008:tom Blare:/home/blare:/bin/bash
# useradd -s /sbin/nologin user6
# su - user6
This account is currently not available.
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
# useradd -s /bin/sh user7
# su - user7
-sh-4.1$ echo $SHELL
/bin/sh
$ exit
logout
# tail -1 /etc/passwd
user7:x:1010:1010::/home/user7:/bin/sh
# man useradd
# export LANG=EN
# man useradd
# ls -la /etc/skel/
总用量 24
drwxr-xr-x. 3 root root 4096 5月 11 2017 .
drwxr-xr-x. 73 root root 4096 3月 29 21:10 ..
-rw-r--r--. 1 root root 18 3月 23 2017 .bash_logout
-rw-r--r--. 1 root root 176 3月 23 2017 .bash_profile
-rw-r--r--. 1 root root 124 3月 23 2017 .bashrc
drwxr-xr-x. 3 root root 4096 2月 16 2014 public_html
# cat /etc/login.defs
# useradd -M user8
# su - user8
su: 警告:无法切换到目录/home/user8: 没有那个文件或目录
$ pwd
/root
userdel:
userdel [option] USERNAME
//没有指定任何选项,用户的家目录不会被删除
-r 同时删除家目录
修改用户账号属性
usermod 它与useradd的用法几乎是一样的
-u UID
-g GID 改基本组(组必须事先存在)
-G GID 改附加组(它有副作用) (此前如果有附加组,此时就没了(没有了))
-a -G 为用户追加新的附加组,而不是覆盖原有(原来)的附加组
-c 指定注释信息
-d 改家目录 如果原家目录有文件,那么那了后,原有的文件就无法访问了
-d -m 这样原家目录下的文件就复制到新的家目录了
-s 改用户的shell
-l 改登录名
-L 锁定用户账号
-U 解锁账号
chsh: 专门用来改用户的shell
chfn: 修改用户的finger信息即 comment (注释)信息
密码管理:
passwd (普通用户只能使用passwd来改自己的密码)
passwd [USERNAME] (管理员可以修改其它用户的密码)
--stdin 从标准输入读取密码
-l 锁定用户账号
-u 解锁用户账号
-d 删除用户密码 删除用户密码,就无法登录了(用户没有密码是无法登录的,系统默认属性就是这样的,默认红帽系统上就是这样子的)
pwck
报告一下用户账户中有没有存在隐患
组管理:
创建组: groupadd
groupadd
-g 指定 GID (不指定的话就是 >500,且比最大的+1)
-r 添加为系统组 (安装服务器的时候,经常用这个命令去创建系统组 , usesadd -r 创建系统用户)
groupmod 修改组的相关属性
-g GID
-n GRPNAME
groupdel +组名 指定组名,删除一个组
gpasswd +组名 给组设定密码
newgrp GRPNAME <--exit--> newgrp 临时登录一个基本组,临时切换基本组,是一个登录属性
如果建一个用户的话(假设不需要组密码)
其实就是做到三个方面:
1)/etc/passwd 里面添加一行
2)/etc/group 里面添加一行
3)/etc/shadow 里面添加一行
添加用户的时候 其实不需要 useradd 命令,手动编辑这三个文件就可以了
chage 改变密码的终止时间
-d: 最近一次的修改时间
-E: 过期时间
-I: 非活动时间
-m:最短使用期限 将两次改变密码之间相距的最小天数设为“最小天数”
-M:警告时间 将两次改变密码之间相距的最大天数设为“最大天数”
# man chage
id: 查看用户的账号属性信息
-u
-g
-G
-n
finger: 检索(查看)用户信息 (甚至可以远程检索) 用来检索用户信息的程序 手指的意思
finger USERNAME
# man id
# id --help
# id
uid gid 组(就是所属的所有组(包括基本组和附加组))
# id user1
# id -u user1
# id -g user1 -g 表示基本组的id
# id -G user1 -G 表示所有组(包括基本组和附加组)的id
# id -G
# id -n user1
# id -u -n user1
# id -g -n user1
# id -G -n user1
# id -Gn 显示所有组的组名 (G和n选项合并)
# man finger
# finger user1
# ls /home
# userdel user1
# ls /home
# userdel -r user2 //-r 表示同时删除家目录
# ls /home
# id user3
# usermod -u 1011 user3
# usermod -u 1012 user3
# id user3
# man usermod
# usermod --help
# finger user3
# chsh user3
# finger user3
# chfn user3
# finger user3
# tail /etc/passwd
# man passwd
# passwd --help
# echo "redhat"
# echo "redhat" | passwd --stdin user3 可以用脚本可以方便的建账号,改密码
# tail /etc/shadow
# passwd -d user3
# tail /etc/shadow
# pwck --help
# man pwck
# pwck
# man groupadd
# useradd -r apache111 #系统目录是不会有家目录,即使给它创建了家目录路径
# tail -1 /etc/passwd
# ls /home
# useradd -r -s /sbin/nologin apache222 #这样系统组连登录都不能
# groupadd -r ngix111
# tail -1 /etc/group
[root@ebs-22618 ~]# useradd hadoop
[root@ebs-22618 ~]# su - hadoop
[hadoop@ebs-22618 ~]$ cd /tmp
[hadoop@ebs-22618 tmp]$ touch a.hadoop
$ ls -l a.hadoop
$ id
uid=1013(hadoop) gid=1013(hadoop) 组=1013(hadoop)
$ man newgrp
$ newgrp mygroup 此时就会用到组密码
[hadoop@ebs-22618 tmp]$ exit
logout
[root@ebs-22618 ~]# gpasswd mygroup
正在修改 mygroup 组的密码
新密码:
请重新输入新密码:
[root@ebs-22618 ~]# su - hadoop
[hadoop@ebs-22618 ~]$ newgrp mygroup 如果本来有mygroup这个附加组那么切换基本组不需要密码
密码:
[hadoop@ebs-22618 ~]$ id 切换基本组后,原来的基本组就变成了附加组
uid=1013(hadoop) gid=1003(mygroup) 组=1003(mygroup),1013(hadoop)
[hadoop@ebs-22618 ~]$ touch b.hadoop
$ ls -l b.hadoop
$ exit 退出所切换的临时基本组
$ id
管道重定向: > , < , >> , <<