一、Linux 的单用户多任务linux
一个用户登入,执行多个任务。好比你使用电脑,聊着QQ,听着音乐。
二、Linux 的多用户多任务web
apache用户提供web服务 root用户操做系统,互不影响
三、Linux 系统用户角色划分shell
用户在系统中是分角色的,在Linux系统中,因为角色不一样,权限和所完成的任务也不一样。值得注意的是用户的角色是经过UID和GID 识别的。特别是UID,在运维工做中,一个UID是惟一标识一个系统用户的帐号。
超级用户:apache
默认是root用户,其UID和GID 均为O,在每台unix/linux操做系统中都是惟一且真实存在的,经过它能够登陆系统。能够操做系统中任何文件。拥有最高的管理权限。在生产环境中,通常会禁止root帐号远程SSH链接服务器,以增强系统安全。安全
普通用户:bash
这类用户通常是由具有系统管理员root的权限的运维人员添加的服务器
虚拟用户:运维
与真实普通用户区分来,这类用户最大的特色是安装系统后默认就会存在,且默认状况不能登陆系统,他们是系统正常运行不可缺乏的,他们的存在主要是方便管理系统,知足相应的系统进程对文件属主的要求。如:bin adm nobody工具
多用户系统从实际上来讲使得系统更为方便。从安全角度来讲,多用户系统也更为安全。ui
一、用户及用户组配置文件介绍
/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow 四个文件。
二、用户:/etc/passwd
文件中每一行定义一个用户帐号。各内容之间又经过“:”划分为多个字段。 (提示:passwd文件中有不少虚拟帐号、如bin,daemon等),通常来讲,这些帐号是系统运行所须要的。在不肯定的状况下,请不要随意删改此类帐号。 root: x :0 :0 :root :/root :/bin/bash 帐号名称 帐号密码 帐号UID 帐号GID 用户说明 用户家目录 shell解释器
三、UID字段限制说明:
0为超级用户 1-499 为系统保留使用的UID。防止人为创建帐户的UID与系统的UID之间冲突 500-65535 普通帐户UID 权限:644 /etc/shadow 权限:400,只有root可读 一样用“:” 分为9个字段。
含义分别为:
帐号密码:最近更改密码的时间:禁止修改密码的天数:用户必须更改口令的天数:警告更改密码的天数:不活动时间:失效时间:标志
四、用户组配置文件:
/etc/group /etc/gshadow /etc/group 字段含义 用户组名:用户组密码:GID:用户组成员 /etc/gshadow 用户组名:用户组密码:用户组管理员帐号:用户组成员
一、用户与用户组管理基本命令总结:
useradd 同 adduser,执行命令可在系统中添加用户。 passwd 执行此命令可为用户设置密码。 usermod 修改用户的命令,能够经过usermod来修改用户登陆名,用户的家目录等等 id 查看用户的uid,gid及所归属的用户组 su 用户切换工具 sudo sudo 是经过另外一个用户来执行命令(execute a command as another user),su是用来切换用户,而后切换到的用户来完成相应的任务,但sudo能在命令后面直接接命令执行,好比 sudo ls /root/,不须要root 密码就能够执行只有root才能执行相应的命令或具有目录权限:这个权限须要经过visudo命令或直接编辑/etc/sudoers 来实现 visudo visodu配置sudo权限的编辑命令;也能够不用这个命令,直接用vi编辑/ect/sudoers实现。 pwcov 同步用户从 /etc/passwd 到 /etc/shadow. pwck pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整 pwunconv 是pwcov的逆向操做,是从/etc/shadow和/etc/passwd 建立 /etc/passwd.而后会删除 /etc/shadow文件 chfn 更改用户信息工具 finger 查看用户信息工具 sudoedit 和sudo功能差很少
groupadd 添加用户组 groupdel 删除用户组 groupmod 修改用户组信息 groups 显示用户所属的用户组 grpck grpconv 经过/etc/group 和/etc/gshadow/ 的文件内容来同步或建立 /etc/gshadow,若是/etc/gshadow 不存在则建立。 grpunconv 经过/etc/group 和/etc/gshadow 文件内容来同步或建立/etc/group ,而后删除gshadow文件。
二、/etc/skel 目录
/etc/skel 目录是用来存放新用户配置文件的目录,当咱们添加新用户时,这个目录下的全部文件会被自动复制到新添加的用户的家目录下;默认状况下,/etc/skel 目录下的全部文件都是隐藏文件(以点开头的文件);经过修改,添加,删除/etc/skel目录下的文件,咱们可为新建立的用户提供统一,标准的,初始化用户环境。 [root@localhost skel]# ls -al 总用量 24 drwxr-xr-x. 3 root root 4096 6月 24 03:12 . drwxr-xr-x. 85 root root 4096 7月 2 03:43 .. -rw-r--r--. 1 root root 18 7月 18 2013 .bash_logout -rw-r--r--. 1 root root 176 7月 18 2013 .bash_profile -rw-r--r--. 1 root root 124 7月 18 2013 .bashrc drwxr-xr-x. 2 root root 4096 11月 12 2010 .gnome2
当咱们用useradd命令添加新用户的时候,Linux系统会自动复制/etc/skel/下的全部文件(包括隐藏文件)到新添加用户的家目录下。
实例一:
[root@localhost skel]# touch longge [root@localhost skel]# useradd longdidi [root@localhost longdidi]# ls /home/longdidi/ -al 总用量 24 drwx------. 3 longdidi longdidi 4096 7月 2 06:31 . drwxr-xr-x. 3 root root 4096 7月 2 06:31 .. -rw-r--r--. 1 longdidi longdidi 18 7月 18 2013 .bash_logout -rw-r--r--. 1 longdidi longdidi 176 7月 18 2013 .bash_profile -rw-r--r--. 1 longdidi longdidi 124 7月 18 2013 .bashrc drwxr-xr-x. 2 longdidi longdidi 4096 11月 12 2010 .gnome2 -rw-r--r--. 1 longdidi longdidi 0 7月 2 06:30 longge
提示:上面所述功能,实际工做中能够考虑统一设置环境变量等,但通常中小公司,在生产环境通常不会随意改这个目录及内容。
三、/etc/login.defs 配置文件
/etc/login.defs 文件是用来定义建立用户时须要的一些用户的配置信息。如建立用户时,是否须要家目录,UID和GID的范围,用户及密码的有效期限等。 [root@localhost longdidi]# egrep -v '^#|^$' /etc/login.defs MAIL_DIR /var/spool/mail #建立用户时, 要在目录/var/spool/mail中建立一个用户mail文件 PASS_MAX_DAYS 99999 #一个密码最长可使用的天数; PASS_MIN_DAYS 0 #更换密码的最小天数; PASS_MIN_LEN 5 #密码的最小长度; PASS_WARN_AGE 7 #密码失效前提早多少天 警告 UID_MIN 500 #最小UID为500,也就是说添加用户的UID默认从500开始 UID_MAX 60000 #最大UID为60000, GID_MIN 500 GID_MAX 60000 CREATE_HOME yes #是否建立家目录 UMASK 077 #默认家目录的umask USERGROUPS_ENAB yes #删除用户同时产出用户组 ENCRYPT_METHOD SHA512 #MD5 密码加密 /etc/default/useradd 文件 /etc/default/useradd 文件是在使用useradd添加用户时的一个须要调用的一个默认的配置文件,可使用useradd -D参数,这样的命令格式来修改文件里面的内容。 [root@localhost default]# egrep -v '^# | ^$' /etc/default/useradd GROUP=100 HOME=/home #制定用户家目录的父目录 INACTIVE=-1 #是否启用帐号过时停权, -1 表示不启用 EXPIRE= #帐号终止日期,不设置表示不启用 SHELL=/bin/bash #新用户默认所用的shell 类型 SKEL=/etc/skel #配置新用户家目录的默认文件存放路劲。前文提到的/etc/skel,就是配置在这里生效的,即当咱们用useradd添加用户时,用户家目录下的文件,都是从这里配置的目录中复制过去的。 CREATE_MAIL_SPOOL=yes #建立mail文件 提示:useradd -D
四、Linux用户管理命令
linux 是一个多用户多任务的操做系统,有着很丰富的用户管理工具,这些工具包括用户的查询,添加,修改,以及不一样用户之间的互相切换等;经过这些工具,咱们能够简单、方便、安全的进行用户管理工做。
与用户管理相关的一些文件:
/etc/passwd 和 /etc/group 咱们对Linux的系统用户和用户组进行添加,修改,删除的最终结果就是修改系统用户文件/etc/passwd 和/etc/shadows 以及用户组的 /etc/group 和文件/etc/gshadow. /etc/login.defs 和/etc/default/useradd /etc/login.defs文件是用来定义在建立用户时的一些默认配置。如建立用户时,是否须要家目录,UID和GID的范围,用户及密码的有效期限等等,。 /etc/default/useradd 文件是在使用useradd 添加用户时须要调用的一个默认的配置文件,可使用 useradd -D参数,这样的命令格式来修改文件里面的内容,固然也能够直接编辑修改。
4.1添加用户命令useradd:
添加用户的命令有useradd和adduser ,这两个命令所能达到的效果是同样的。固然出了useradd和 adduser命令以外,咱们还能经过修改用户配置文件/etc/passwd 和/etc/group及手动建立文件的办法来直接添加用户。 useradd命令:当使用useradd命令不加参数选项,后面直接跟所添加的用户名时,系统首先会读取配置文件/etc/login.defs 和/etc/default/useradd 中所定义的参数或规则,根据设置的规则添加用户,同时会向/etc/passwd 和 /etc/group 文件内添加新建用户和用户组几记录。 固然/etc/passwd和/etc/group的加密资讯文件/etc/shadows 和/etc/gshadow 也会同步生产记录,同时系统还会根据/etc/default/useradd文件中所配置的信息创建用户的家目录,并复制/etc/skel 中的全部文件(包括隐藏的环境配置文件)到新用户的家目录中。
-c comment 新帐号password档的说明栏 -d home_dir 新帐号每次登入时所使用的home_dir。预设置位 login名称、 -e expire_date 帐号终止日期。 -f inactive_days 帐号过时后几日永久停权。当设置为0时帐号则马上被停权。当设置为-1时则关闭此功能, -g initial_group group名称或以数字来作为用户登入起始用户组。用户组名须为系统现有存在的名称, -G group 定义此用户为多个不一样groups的成员,每一个用户组使用“,”都好分隔。
4.2添加用户组命令groupadd
groupadd 命令有关的文件有: /etc/group 用户组相关文件 /etc/gshadow 用户组加密相关文件 groupadd命令语法: groupadd [-g gid [-o] ] [ -r ] [ -f ] groupname groupadd 参数选项: -g gid 制定用户组GID值。除非接-o 参数(如:groupadd -g 1234 -o longge),不然ID值必须是惟一的数字(不能为负数)。若是不指定-g参数,则预设值会从500开始 -r 创建系统用户组,GID值会比/etc/login.defs 中定义的UID_MIN值小。 -f 新增一个帐户,强制覆盖一个已经存在的用户组帐号, 文件: /etc/group 用户组相关文件 /etc/gshadow 用户组加密相关文件 提示:以上为用户组相关的文件,使用groupadd 命令的结果实际上就是更改维护这两个文件。 相关命令: chfn chsh useradd userdel usermod passwd groupdel groupmod groupadd命令实例: 在生产环境中,通常增长用户组的用法都是很是简单的。
普通用户和超级用户均可以运行passwd命令,但普通用户只能更改自身的用户密码。超级用户root则能够设置或修改全部用户的密码。 当直接 passwd 命令后面不接任何参数或用户名时,则表示修改当前登陆用户的密码。
passwd 参数选项: -k --keep-tokens 保留即将过时的用户在期满后仍能使用 -d --delete 删除用户密码,仅能以root权限操做 -l --lock 锁住用户无权更改密码,仅能经过root权限操做 -u --unlock 解除锁定 -f --force 强制操做;仅root权限才能操做 -x --maximum=DAYS 两次密码修改的最大天数,后面接数字;仅能root权限操做 -n --minimum=DAYS 两次密码修改的最小天数,后面接数字;仅能root权限操做 -w --warning=DAYS 在距多少天提醒用户修改密码:仅能root操做 -i --inacive=DAYS 在密码过时后多少天,用户被禁掉,仅能root操做 -S --status 查询用户的密码状态,仅能root操做
实例:咱们用--stdin 参数实现非交互式的批量设置或修改密码
[root@localhost ~]# echo "123.com" | passwd --stdin longdidi 更改用户 longdidi 的密码 。 passwd: 全部的身份验证令牌已经成功更新。
4.4修改用户密码有效期限相关命令chage:
chage命令的用法不少,和passwd等命令功能也有很多是重复的。 语法: chage [选项] 用户名 -d --lastday 将最近一次密码设置时间设为“最近日期” -E --expiredate 将帐户过时时间设为“过时日期” -h 显示帮助 -i 将因过时而失效的密码设为“失效密码” -l 显示帐户年龄信息 -m 将两次改变密码之间相距的最小天数设置为“最小天数”
4.5删除用户相关命令userdel
相关文件: /etc/passwd 用户帐号资料文件 /etc/shadow 用户帐户资讯加密文件 /etc/group 用户组资讯文件 userdel 语法: userdel [-r] 用户名 groupdel chfn
4.6更改用户的shell类型 chsh
4.7用户信息修改相关命令usermod:
语法: usermod [-c comment] [-d home_dir [-m]] ..... usermod 参数选项: -c -d 更新用户新的家目录。若是给定—m选项,用户旧的家目录会搬到新的家目录去, -e 加上用户帐号中止日期2 -f 帐号过时几往后永久停权 ....