用户的操作:
(1)添加:useradd(adduser)
[root@www ~]# man useradd
USERADD(8)
8 表示这是一个管理类的命令(root)
作业:查一下man还有没有其他的数字编号表示不同的帮助手册。
NAME
useradd - create a new user or update default new
user information
SYNOPSIS
useradd [options] LOGIN
LOGIN:允许的登录的用户名。字母、数字、_,用户名的长度<=31。
用户名和用户ID是不允许重复的.
唯一标识一个用户的(用户ID)和(用户名).
root: vim /etc/passwd
学技术,方便我们的操作,不要自己给自己找麻烦.
useradd username //create a new user
useradd [options] LOGIN //update default new user information
FILES
/etc/passwd 保存用户的属性信息
User account information.
/etc/shadow 保存用户的密码信息
Secure user account information.
/etc/group 保存用户的组的信息
Group account information.
/etc/gshadow 保存用户的组密码的信息
Secure group account information.
/etc/default/useradd 添加用户的时候,使用的默认属性
Default values for account creation.
/etc/skel/ “骨架“目录
Directory containing default files.
/etc/login.defs 用户的属性的设置
Shadow password suite configuration.
添加一个用户 user1:
[root@www ~]# useradd user1
在建立用户的时候,如果没有指定主组,那么会建立一个与用户名同名的组,作为用户的主组。
系统里都有哪些文件发生了变化?
(1)/etc/passwd
[root@www ~]# vim /etc/passwd
user1:x:500:500::/home/user1:/bin/bash
用户名
密码控位键 必须是x,表示用户登录系统需要密码。
用户ID(UID)
0 root管理员用户
1-499 系统用户,默认是不允许登录到系统的
500-60000 普通用户??
uid是不允许重复的(默认的)。
[root@www ~]# useradd user2
[root@www ~]# vim /etc/passwd
:q! 退出编辑
[root@www ~]# useradd -u 1000 user3
[root@www ~]# vim /etc/passwd
[root@www ~]# useradd user4
[root@www ~]# vim /etc/passwd
[root@www ~]# useradd -u 502 user5
[root@www ~]# vim /etc/passwd
自增
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
user3:x:1000:1000::/home/user3:/bin/bash
user4:x:1001:1001::/home/user4:/bin/bash
user5:x:502:502::/home/user5:/bin/bash
组ID(GID):
0 root组
1-499 系统用户组
500-60000 普通组
GID能不能重复?
能,多个用户可以共用一个组ID。
组可以是空的,用户不可以不在任何一个组里。
你要把一个用户放到一个组里,那么这个组必须是事先存在于你的操作系统。
否则报错:
[root@www ~]# useradd -g 2000 user7
useradd:未知的组 2000
[root@www ~]# useradd -g g1 user8
useradd:未知的组 g1
已经存在于系统的组,去哪里查?
/etc/group
给用户指定主组:-g
[root@www ~]# useradd -g 1000 user7 使用GID
[root@www ~]# useradd -g user3 user8 使用组名
给用户指定附属组:-G
[root@www ~]# useradd -G 500,501,502,1000 user9
[root@www ~]# useradd -G user1,user2,user3,user4 user10
描述:默认是空的
[root@www note]# useradd -c "qdx,12345678901" user12
chfn 设置描述信息
finger 查看
[root@www note]# finger user12
Login: user12 Name: qdx
Directory: /home/user12 Shell: /bin/bash
Office: 12345678901
Never logged in.
No mail.
No Plan.
[root@www note]# chfn user12
Changing finger information for user12.
Name [qdx]:
Office [9876543210]: jishubu
Office Phone [119]:
Home Phone [001]:
Finger information changed.
家目录:用户在登录系统之后,开启shell(终端),所在的位置就是家目录。
如果一个用户没有了家目录,它是可以登录系统的,但是会有一些错误提示,登录之后,所在的位置大多数都在 / 目录下。
这种错误怎么解决?
???
为什么普通用户的家目录都在 /home 目录下?
[root@www home]# vim /etc/default/useradd
HOME=/home
也可以在添加用户的之后指定家目录,但是指定的家目录必须是不存在的。
[root@www home]# useradd -d /user14 user14
[root@www home]# mkdir /user15
[root@www home]# useradd -d /user15 user15
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
shell:操作系统的外壳,把用户输入到终端的命令"翻译"给内核,内核操控硬件完成运算之后,结构由shell"翻译"给用户,显示到屏幕.
当前系统支持的shell:
[root@www home]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin 合法的非登录shell
/bin/tcsh
/bin/csh
/bin/ksh
/bin/zsh
如何修改一个用户的shell?
(1) root
vim /etc/passwd
/bin/bash --> /bin/zsh ......
(2)普通用户
chsh
[user1@www ~]$ chsh
Changing shell for user1.
口令:
New shell [/bin/bash]: /bin/zsh
Shell changed. //下次登录生效
如果要在添加用户的时候设置shell:
useradd -s 7个shell username
[root@www home]# useradd -s /bin/ksh user16
为什么默认的shell是 /bin/bash ?
[root@www home]# vim /etc/default/useradd
SHELL=/bin/bash
[root@www home]# vim /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home 默认的家目录
INACTIVE=-1 用户的失效时间;-1 永远不失效
EXPIRE= 用户的过期时间; 空值 永远不过期
SHELL=/bin/bash 默认的shell
SKEL=/etc/skel 骨架目录
CREATE_MAIL_SPOOL=yes 是否给用户创建邮箱
/etc/skel/
[root@www home]# cd /etc/skel/
[root@www skel]# ls
[root@www skel]# ls -A
.bash_logout .bashrc .mozilla
.bash_profile .emacs .zshrc
[root@www /]# cd /home/user1
[root@www user1]# ls -A
.bash_history .bash_profile .emacs .viminfo .zshrc
.bash_logout .bashrc .mozilla .zcompdump
.bash_profile和.bashrc是在登录的时候读取.
.bash_logout 是在退出的时候读取
[root@www user6]# vim .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
如果家目录里有 .bashrc 文件,那么 加载.
PATH=$PATH:$HOME/bin
export PATH
决定了用户能够使用哪些路径下的命令.
[user6@www ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/user6/bin
[root@www user6]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@www user6]# vim .bashrc
[root@www user6]# vim .bash_logout
.bash_history 保存历史命令的,默认是没有的.
用户登录之后,输入一些命令,执行,退出shell之后就会生成.
---------------------------------------------------------
/etc/group 保存用户组的信息
组名
组密码
组ID
用户列表:如果这个组是用户的主组,在这里没有用户显示;只有这个组是某个用户的附属组,才会看到用户.
添加:groupadd
组名:唯一,组ID唯一,取组的名字,参照用户名.
删除:groupdel
----------------------------------------------------------
/etc/shadow
root:$1$YR9QhIqd$KD6FRecx2i7xDQxSXhQhA0:15712:0:99999:7:::
用户名
MD5 加密的密码; redhat 6 RSA
密码的最近一次的修改时间,从1970-01-01开始到现在的天数
密码的最小生存周期;0 没有限制
密码的最大生存周期;99999 永远也不过期
警告时间
密码的失效时间
用户的过期时间
保留
普通用户修改自己的密码,首先需要输入原始密码,并且要注意密码复杂度.
[user1@www ~]$ passwd
Changing password for user user1.
Changing password for user1
(current) UNIX password:
New UNIX password:
BAD PASSWORD: it is too short
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@www ~]# grub-md5-crypt
Password:
Retype password:
$1$IBRO/1$FtHV.kSMMhoo1hPsl49W6.
把user15的密码锁上,在密码前面 加 !
user15:!$1$aeqBXDWA$NiUv0j5gQLlUbqmur7Djr/:15720:0:99999:7:::
:wq! 强制保存退出
使用 chage 命令查看用户的密码信息:
[root@www skel]# chage -l user1
Last password change : Jan 15, 2013
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
例子1:
修改密码的最小生存周期
[root@www skel]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 3
Maximum Password Age [99999]:
Last Password Change (YYYY-MM-DD) [2013-01-15]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
修改密码的最大生存周期:
[root@www skel]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
Minimum Password Age [3]: 0
Maximum Password Age [99999]: 1
Last Password Change (YYYY-MM-DD) [2013-01-15]: 2013-01-13
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
一定要在文本终端登录测试,登录之后,会立刻提示要求修改密码.
修改密码的失效时间:
[root@www note]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
Minimum Password Age [0]:
Maximum Password Age [1]:
Last Password Change (YYYY-MM-DD) [2013-01-15]: 2013-01-11
Password Expiration Warning [7]:
Password Inactive [-1]: 1
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
密码过期之后,用户还可以使用,只是在登录的时候要求立即改密码;如果密码失效了,那么用户就不能用了。这时候需要 root 用户修改相应的时间
root 会管理普通用户。
---------------------------------------------------------
[root@www ~]# xclock
Warning: Missing charsets in String to FontSet conversion
[root@www ~]# xclock -update 1
Warning: Missing charsets in String to FontSet conversion
[root@www ~]# xeyes
alt F2 <-- free the fish
(1)添加:useradd(adduser)
[root@www ~]# man useradd
USERADD(8)
8 表示这是一个管理类的命令(root)
作业:查一下man还有没有其他的数字编号表示不同的帮助手册。
NAME
useradd - create a new user or update default new
user information
SYNOPSIS
useradd [options] LOGIN
LOGIN:允许的登录的用户名。字母、数字、_,用户名的长度<=31。
用户名和用户ID是不允许重复的.
唯一标识一个用户的(用户ID)和(用户名).
root: vim /etc/passwd
学技术,方便我们的操作,不要自己给自己找麻烦.
useradd username //create a new user
useradd [options] LOGIN //update default new user information
FILES
/etc/passwd 保存用户的属性信息
User account information.
/etc/shadow 保存用户的密码信息
Secure user account information.
/etc/group 保存用户的组的信息
Group account information.
/etc/gshadow 保存用户的组密码的信息
Secure group account information.
/etc/default/useradd 添加用户的时候,使用的默认属性
Default values for account creation.
/etc/skel/ “骨架“目录
Directory containing default files.
/etc/login.defs 用户的属性的设置
Shadow password suite configuration.
添加一个用户 user1:
[root@www ~]# useradd user1
在建立用户的时候,如果没有指定主组,那么会建立一个与用户名同名的组,作为用户的主组。
系统里都有哪些文件发生了变化?
(1)/etc/passwd
[root@www ~]# vim /etc/passwd
user1:x:500:500::/home/user1:/bin/bash
用户名
密码控位键 必须是x,表示用户登录系统需要密码。
用户ID(UID)
0 root管理员用户
1-499 系统用户,默认是不允许登录到系统的
500-60000 普通用户??
uid是不允许重复的(默认的)。
[root@www ~]# useradd user2
[root@www ~]# vim /etc/passwd
:q! 退出编辑
[root@www ~]# useradd -u 1000 user3
[root@www ~]# vim /etc/passwd
[root@www ~]# useradd user4
[root@www ~]# vim /etc/passwd
[root@www ~]# useradd -u 502 user5
[root@www ~]# vim /etc/passwd
自增
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
user3:x:1000:1000::/home/user3:/bin/bash
user4:x:1001:1001::/home/user4:/bin/bash
user5:x:502:502::/home/user5:/bin/bash
组ID(GID):
0 root组
1-499 系统用户组
500-60000 普通组
GID能不能重复?
能,多个用户可以共用一个组ID。
组可以是空的,用户不可以不在任何一个组里。
你要把一个用户放到一个组里,那么这个组必须是事先存在于你的操作系统。
否则报错:
[root@www ~]# useradd -g 2000 user7
useradd:未知的组 2000
[root@www ~]# useradd -g g1 user8
useradd:未知的组 g1
已经存在于系统的组,去哪里查?
/etc/group
给用户指定主组:-g
[root@www ~]# useradd -g 1000 user7 使用GID
[root@www ~]# useradd -g user3 user8 使用组名
给用户指定附属组:-G
[root@www ~]# useradd -G 500,501,502,1000 user9
[root@www ~]# useradd -G user1,user2,user3,user4 user10
描述:默认是空的
[root@www note]# useradd -c "qdx,12345678901" user12
chfn 设置描述信息
finger 查看
[root@www note]# finger user12
Login: user12 Name: qdx
Directory: /home/user12 Shell: /bin/bash
Office: 12345678901
Never logged in.
No mail.
No Plan.
[root@www note]# chfn user12
Changing finger information for user12.
Name [qdx]:
Office [9876543210]: jishubu
Office Phone [119]:
Home Phone [001]:
Finger information changed.
家目录:用户在登录系统之后,开启shell(终端),所在的位置就是家目录。
如果一个用户没有了家目录,它是可以登录系统的,但是会有一些错误提示,登录之后,所在的位置大多数都在 / 目录下。
这种错误怎么解决?
???
为什么普通用户的家目录都在 /home 目录下?
[root@www home]# vim /etc/default/useradd
HOME=/home
也可以在添加用户的之后指定家目录,但是指定的家目录必须是不存在的。
[root@www home]# useradd -d /user14 user14
[root@www home]# mkdir /user15
[root@www home]# useradd -d /user15 user15
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
shell:操作系统的外壳,把用户输入到终端的命令"翻译"给内核,内核操控硬件完成运算之后,结构由shell"翻译"给用户,显示到屏幕.
当前系统支持的shell:
[root@www home]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin 合法的非登录shell
/bin/tcsh
/bin/csh
/bin/ksh
/bin/zsh
如何修改一个用户的shell?
(1) root
vim /etc/passwd
/bin/bash --> /bin/zsh ......
(2)普通用户
chsh
[user1@www ~]$ chsh
Changing shell for user1.
口令:
New shell [/bin/bash]: /bin/zsh
Shell changed. //下次登录生效
如果要在添加用户的时候设置shell:
useradd -s 7个shell username
[root@www home]# useradd -s /bin/ksh user16
为什么默认的shell是 /bin/bash ?
[root@www home]# vim /etc/default/useradd
SHELL=/bin/bash
[root@www home]# vim /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home 默认的家目录
INACTIVE=-1 用户的失效时间;-1 永远不失效
EXPIRE= 用户的过期时间; 空值 永远不过期
SHELL=/bin/bash 默认的shell
SKEL=/etc/skel 骨架目录
CREATE_MAIL_SPOOL=yes 是否给用户创建邮箱
/etc/skel/
[root@www home]# cd /etc/skel/
[root@www skel]# ls
[root@www skel]# ls -A
.bash_logout .bashrc .mozilla
.bash_profile .emacs .zshrc
[root@www /]# cd /home/user1
[root@www user1]# ls -A
.bash_history .bash_profile .emacs .viminfo .zshrc
.bash_logout .bashrc .mozilla .zcompdump
.bash_profile和.bashrc是在登录的时候读取.
.bash_logout 是在退出的时候读取
[root@www user6]# vim .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
如果家目录里有 .bashrc 文件,那么 加载.
PATH=$PATH:$HOME/bin
export PATH
决定了用户能够使用哪些路径下的命令.
[user6@www ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/user6/bin
[root@www user6]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@www user6]# vim .bashrc
[root@www user6]# vim .bash_logout
.bash_history 保存历史命令的,默认是没有的.
用户登录之后,输入一些命令,执行,退出shell之后就会生成.
---------------------------------------------------------
/etc/group 保存用户组的信息
组名
组密码
组ID
用户列表:如果这个组是用户的主组,在这里没有用户显示;只有这个组是某个用户的附属组,才会看到用户.
添加:groupadd
组名:唯一,组ID唯一,取组的名字,参照用户名.
删除:groupdel
----------------------------------------------------------
/etc/shadow
root:$1$YR9QhIqd$KD6FRecx2i7xDQxSXhQhA0:15712:0:99999:7:::
用户名
MD5 加密的密码; redhat 6 RSA
密码的最近一次的修改时间,从1970-01-01开始到现在的天数
密码的最小生存周期;0 没有限制
密码的最大生存周期;99999 永远也不过期
警告时间
密码的失效时间
用户的过期时间
保留
普通用户修改自己的密码,首先需要输入原始密码,并且要注意密码复杂度.
[user1@www ~]$ passwd
Changing password for user user1.
Changing password for user1
(current) UNIX password:
New UNIX password:
BAD PASSWORD: it is too short
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@www ~]# grub-md5-crypt
Password:
Retype password:
$1$IBRO/1$FtHV.kSMMhoo1hPsl49W6.
把user15的密码锁上,在密码前面 加 !
user15:!$1$aeqBXDWA$NiUv0j5gQLlUbqmur7Djr/:15720:0:99999:7:::
:wq! 强制保存退出
使用 chage 命令查看用户的密码信息:
[root@www skel]# chage -l user1
Last password change : Jan 15, 2013
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
例子1:
修改密码的最小生存周期
[root@www skel]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 3
Maximum Password Age [99999]:
Last Password Change (YYYY-MM-DD) [2013-01-15]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
修改密码的最大生存周期:
[root@www skel]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
Minimum Password Age [3]: 0
Maximum Password Age [99999]: 1
Last Password Change (YYYY-MM-DD) [2013-01-15]: 2013-01-13
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
一定要在文本终端登录测试,登录之后,会立刻提示要求修改密码.
修改密码的失效时间:
[root@www note]# chage user1
Changing the aging information for user1
Enter the new value, or press ENTER for the default
Minimum Password Age [0]:
Maximum Password Age [1]:
Last Password Change (YYYY-MM-DD) [2013-01-15]: 2013-01-11
Password Expiration Warning [7]:
Password Inactive [-1]: 1
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
密码过期之后,用户还可以使用,只是在登录的时候要求立即改密码;如果密码失效了,那么用户就不能用了。这时候需要 root 用户修改相应的时间
root 会管理普通用户。
---------------------------------------------------------
[root@www ~]# xclock
Warning: Missing charsets in String to FontSet conversion
[root@www ~]# xclock -update 1
Warning: Missing charsets in String to FontSet conversion
[root@www ~]# xeyes
alt F2 <-- free the fish