linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号。在使用linux操作系统时候,通常我们会遇到对多用户进行管理。
比如:
用户账号的添加、删除、修改
用户口令的管理
用户组的管理
1.新用户的添加
语法:useradd 选项 用户名
参数说明:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
useradd -d /home/ztl -m ztl
解释:此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
useradd -s /bin/sh -g group -G adm,root gem
解释:此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
这里可能新建组:#groupadd group:groupadd adm
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。
2.查看用户、用户组
cat /etc/passwd #可以查看所有用户的列表 w #可以查看当前活跃的用户列表 cat /etc/group #查看用户组
groups #查看当前登录用户的组内成员 groups #test 查看test用户所在的组,以及组内成员 whoami #查看当前登录用户名
3.删除账号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
userdel 选项 用户名
常用的选项是 -r ,它的作用是把用户的主目录一起删除。
userdel -r ztl
解释:此命令删除用户ztl在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
4.修改账号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如:
usermod -s /bin/ksh -d /home/z -g developer sam
解释:此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z 用户组改为developer
5.用户口令管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
$ passwd
如果是超级用户,可以用下列形式指定任何用户的口令:
# passwd sam
演示:
[[email protected] ~]# passwd sam Changing password for user sam. New password: BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully.
上面例子提示:密码太简单,不用管它,继续输入密码就OK了。
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
# passwd -d sam
此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
# passwd -l sam
原文出处:https://www.cnblogs.com/selectztl/p/9523151.html
Linux用户、用户组、文件权限学习笔记
参考网址:http://www.sourcejoy.com/other_dev_tech/linux-user-and-file-manage.html
最近打算更仔细学习一下linux操作系统。先是恶补了一下用户、用户组、文件权限这三样比较重要的知识。
学习这几样东西,得先掌握linux的权限系统相关知识。
linux的权限系统主要是由用户、用户组和权限组成。
用户就是一个个的登录并使用linux的用户。linux内部用UID表示。
用户组就是用户的分组。linux内部用GID表示。
权限分为读、写、执行三种权限。
linux的用户信息保存在/etc/passwd文件中,另外,/etc/shadow文件存放的是用户密码相关信息。
/etc/passwd文件格式:
用户名:密码:UID:GID:用户信息:HOME目录路径:用户shell
其中UID为0则是用户root,1~499为系统用户,500以上为普通用户
/etc/shadow保存用户密码信息,包括加密后的密码,密码过期时间,密码过期提示天数等。
用户组信息保存在/etc/group文件中.
格式如下:
用户组名:组密码:GID:组内帐号(多个帐号用逗号分隔)
用户登录后,/etc/passwd文件里的GID为用户的初始用户组。
用户的初始用户组这一事实不会再/etc/group中体现。
查看当前用户的用户组命令:
[[email protected] opt]#groups
root bin daemon sys adm disk wheel
输出的信息中,第一个用户组为当前用户的有效用户组(当前用户组)
切换有效用户组命令:
[[email protected] opt]#newgrp 用户组名
要离开新的有效用户组,则输入exit回车。
新建用户命令:
[[email protected] opt]#useradd 用户名 -g 初始用户组 -G 其他用户组(修改/etc/group) -c 用户说明 -u 指定UID
建完用户需要为用户设置密码:
[[email protected] opt]#passwd 用户名
用户要修改自己密码命令:
[[email protected] opt]#passwd
修改用户信息命令:
[[email protected] opt]#usermod 参数 用户名
参数:
-c 说明
-g 组名 初始用户组
-e 过期日期 格式:YYYY-MM-DD
-G 组名 其他用户组
-l 修改用户名
-L 锁定账号(在/etc/shadow文件中用户对应密码密码串的前面加上两个叹号(!!))
-U 解锁
删除用户命令:
[[email protected] opt]#userdel [-r] 用户名
其中,参数-r为删除用户的home目录。
其实,可能在系统其他地方也有该用户文件,要完整删除一个用户和其文件要先找到属于他的文件:
[[email protected] opt]#find / -user 用户名
然后删除,再运行userdel删除用户。
查看可用shell命令:
[[email protected] opt]#chsh -l
修改自己的shell命令:
[[email protected] opt]#chsh -s
查看自己或某人UID/GID信息:
[[email protected] opt]#id [用户名]
返回信息中groups为有效用户组
新增用户组命令:
[[email protected] opt]#groupadd 用户组名
修改用户组名命令:
[[email protected] opt]#groupmod -n 名称
删除用户组命令:
[[email protected] opt]#groupdel 用户组名
设置用户组密码命令:
[[email protected] opt]#gpasswd 用户组名
如果gpasswd加上参数则有其他功能
设置用户组管理员命令:
[[email protected] opt]#gpasswd -A 用户名 用户组名
添加某帐号到组命令:
[[email protected] opt]#gpasswd -M 用户名 用户组名
从组中删除某帐号命令:
[[email protected] opt]#gpasswd -d 用户名 用户组名
passwd相关参数操作:
-l 锁用户
-u 解锁用户
-n 天数 密码不可改天数
-x 天数 密码过期天数
-w 天数 警告天数
文件权限知识
先看个实例:
[[email protected] opt]#ls -al
ls -al 命令是列出目录的所有文件,包括隐藏文件。隐藏文件的文件名第一个字符为‘.‘
-rw-r--r-- 1 root root 81 08-02 14:54 gtkrc-1.2-gnome2
-rw------- 1 root root 189 08-02 14:54 ICEauthority
-rw------- 1 root root 35 08-05 10:02 .lesshst
drwx------ 3 root root 4096 08-02 14:54 .metacity
drwxr-xr-x 3 root root 4096 08-02 14:54 nautilus
列表的列定义如下:
[权限属性信息] [连接数] [拥有者] [拥有者所属用户组] [大小] [最后修改时间] [文件名]
权限属性列表为10个字符:
第一个字符表示文件类型,d为目录 -为普通文件 l为连接 b为可存储的接口设备 c为键盘鼠标等输入设备
2、3、4个字符表示所有者权限,5、6、7个字符表示所有者同组用户权限,8、9、10为其他用户权限
第二个字符表示所有者读权限,如果有权限则为r,没有权限则为-
第三个字符表示所有者写权限,如果有权限则为w,没有权限则为-
第四个字符表示所有者执行权限,如果有权限则为x,没有权限则为-
第五个字符表示所有者同组用户读权限,如果有权限则为r,没有权限则为-
第六个字符表示所有者同组用户写权限,如果有权限则为w,没有权限则为-
第七个字符表示所有者同组用户执行权限,如果有权限则为x,没有权限则为-
第八个字符表示其他非同组读权限,如果有权限则为r,没有权限则为-
第九个字符表示其他非同组写权限,如果有权限则为w,没有权限则为-
第十个字符表示其他非同组执行权限,如果有权限则为x,没有权限则为-
修改文件所属组命令:
[[email protected] opt]#chgrp [-R] 组名 文件名
其中-R为递归设置
修改文件的所有者和组命令:
[[email protected] opt]#chown [-R] 用户[:用户组] 文件名
修改文件访问权限命令:
[[email protected] opt]#chmod [-R] 0777 文件名
至此,用户、文件和权限相关的东西,就总结个7788了,接下来的就是,平常要敢于用各种命令,勤于看看本篇总结啦。
====================================================================
linux 查看用户及用户组的方法
whois
功能说明:查找并显示用户信息。
语 法:whois [帐号名称]
补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions 的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
---------------------------------------------------------
whoami
功能说明:先似乎用户名称。
语 法:whoami [--help][--version]
补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
参 数:
--help 在线帮助。
--version 显示版本信息。
---------------------------------------------------
who
功能说明:显示目前登入系统的用户信息。
语 法:who [-Himqsw][--help][--version][am i][记录文件]
补充说明:执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的 终端机,登入时间以及从何处登入或正在使用哪个X显示器。
参 数:
-H或--heading 显示各栏位的标题信息列。
-i或-u或--idle 显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m 此参数的效果和指定"am i"字符串相同。
-q或--count 只显示登入系统的帐号名称和总人数。
-s 此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w或-T或--mesg或--message或--writable 显示用户的信息状态栏。
--help 在线帮助。
--version 显示版本信息。
----------------------------------------------------
w
功能说明:显示目前登入系统的用户信息。
语 法:w [-fhlsuV][用户名称]
补充说明:执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w
指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
参 数:
-f 开启或关闭显示用户从何处登入系统。
-h 不显示各栏位的标题信息列。
-l 使用详细格式列表,此为预设值。
-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V 显示版本信息。
-----------------------------------------------------
finger命令
finger 命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。
该命令的一般格式为:
finger [选项] [使用者] [用户@主机]
命令中各选项的含义如下:
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p 除了不显示.plan文件和.project文件以外,与-l选项相同。
[例]在本地机上使用finger命令。
$ finger xxq
Login: xxq Name:
Directory: /home/xxq Shell: /bin/bash
Last login Thu Jan 1 21:43 (CST) on tty1
No mail.
No Plan.
$ finger
Login Name Tty Idle Login Time Office Office Phone
root root *1 28 Nov 25 09:17
……
------------------------------------------------------------------
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
修改当前用户所属组的方法
usermod 或者可以直接修改 /etc/paaawd文件即可
----------------------------------------------------------------
vlock(virtual console lock)
功能说明:锁住虚拟终端。
语 法:vlock [-achv]
补充说明:执行vlock指令可锁住虚拟终端,避免他人使用。
参 数:
-a或--all 锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
切换终端机的功能一并关闭。
-c或--current 锁住目前的终端阶段作业,此为预设值。
-h或--help 在线帮助。
-v或--version 显示版本信息。
--------------------------------------------------------
usermod
功能说明:修改用户帐号。
语 法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ][用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参 数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
-------------------------------------------------------
userdel
功能说明:删除用户帐号。
语 法:userdel [-r][用户帐号]
补充说明:userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
参 数:
-f 删除用户登入目录以及目录中所有文件。
----------------------------------------------------------
userconf
功能说明:用户帐号设置程序。
语 法:userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称>][--delgroup <群组>][--deluser <用户ID>][--help]
补充说明:userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
参 数:
--addgroup<群组> 新增群组。
--adduser<用户ID><群组><用户名称> 新增用户帐号。
--delgroup<群组> 删除群组。
--deluser<用户ID> 删除用户帐号。
--help 显示帮助。
------------------------------------------------------
useradd
功能说明:建立用户帐号。
语 法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ][-u ][用户帐号] 或 useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s ]
补充说明:useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
参 数:
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的启始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s 指定用户登入后所使用的shell。
-u 指定用户ID。
原文地址:https://www.cnblogs.com/sucretan2010/p/11684639.html