linux下查看所有用户及所有用户组
Linux用户管理及用户信息查询
Linux⽤户管理及⽤户信息查询useradd 创建⽤户,更改⽤户信息 1.⼯作原理流程 使⽤此命令式,若不加任何参数选项,直接跟⽤户名,那么系统会⾸先读取/etc/login.defs(⽤户定义⽂件)和/etc/default/useradd(⽤户默认配置⽂件)⽂件中所定义的参数和规则,然后进⾏添加⽤户的操作,同时还会读取/etc/passwd(⽤户⽂件)和/etc/group(组⽂件),添加新⽤户和⽤户组信息,再向/etc/shadow(⽤户密码⽂件)和/etc/gshadow(组密码⽂件)添加对应的密码信息。
同时根据/etc/default/useradd定义的信息简历家⽬录,并将/etc/skel中的所有⽂件复制到新⽤户的家⽬录中。
eradd加-D参数:改变/etc/default/useradd定义的信息,也可以⼿动修改 例如,⽤户账号的停⽌⽇期,过期⽇期,使⽤的shell名称等,具体可参考配置⽂件 eradd不加-D参数: -c comment # ⽤户的说明栏 -d # 新⽤户家⽬录 -e # ⽤户终⽌⽇期 -f # ⽤户过期⼏⽇后永久停权,0时,⽤户⽴即被停权,-1时,关闭此功能 -g # 指定⽤户的⽤户组 -G # 定义⽤户多个不同组的成员 -m # ⽤户⽬录若是不存在,⾃动简历 -M # 布简历⽤户家⽬录,⼀般创建虚拟⽤户使⽤ -s # 指定⽤户的shell程序 -u # ⽤户的uid值设定[root@centos7 ~]# useradd ett[root@centos7 ~]# ls -ld /home/ett/drwx------ 2 ett ett 62 Apr 1815:52 /home/ett/[root@centos7 ~]# grep -w ett /etc/passwdett:x:1000:1000::/home/ett:/bin/bash[root@centos7 ~]# grep -w ett /etc/shadowett:!!:18004:0:99999:7:::[root@centos7 ~]# grep -w ett /etc/groupett:x:1000:[root@centos7 ~]# grep -w ett /etc/gshadowett:!::[root@centos7 ~]# useradd -u 901 -g sa xiaoliziuseradd: group 'sa' does not exist[root@centos7 ~]# groupadd sa[root@centos7 ~]# useradd -u 901 -g sa xiaolizi[root@centos7 ~]# id xiaoliziuid=901(xiaolizi) gid=1001(sa) groups=1001(sa)[root@centos7 ~]# useradd -M -s /sbin/nologin xiaolizi2[root@centos7 ~]# grep -w xiaolizi2 /etc/passwdxiaolizi2:x:1001:1002::/home/xiaolizi2:/sbin/nologinusermod ⽤于修改系统已经存在的⽤户的账号信息 ⽤法参数与useradd类似userdel 删除⽤户 # ⼯作中及你浪不要随意删除⽤户,请在/etc/passed⾥⾯采⽤注释的⽅式 -f # 强制删除⽤户,即使⽤户当前已登录 -r # 删除⽤户的同事,删除与⽤户相关的所有⽂件[root@centos7 ~]# tail -3 /etc/passwdett:x:1000:1000::/home/ett:/bin/bashxiaolizi:x:901:1001::/home/xiaolizi:/bin/bashxiaolizi2:x:1001:1002::/home/xiaolizi2:/sbin/nologin[root@centos7 ~]# userdel -r xiaolizi[root@centos7 ~]# userdel -r xiaolizi2userdel: xiaolizi2 home directory (/home/xiaolizi2) not found[root@centos7 ~]# tail -3 /etc/passwdpostfix:x:89:89::/var/spool/postfix:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologinett:x:1000:1000::/home/ett:/bin/bash[root@centos7 ~]# id ettuid=1000(ett) gid=1000(ett) groups=1000(ett)[root@centos7 ~]# vim /etc/passwd # 将⽤户注释掉[root@centos7 ~]# tail -3 /etc/passwdpostfix:x:89:89::/var/spool/postfix:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologin#ett:x:1000:1000::/home/ett:/bin/bash[root@centos7 ~]# id ettid: ett: no such user[root@centos7 tmp]# cat /tmp/xiaolizi.log |awk '{print $1}'|sed -r 's#(.*)#"userdel -r \1";echo -e "`userdel -r \1`">/tmp/userdel.log#g'|bashgroupadd ⽤于创建新的⽤户组,⽤途⼀般不多,主要是因为useradd创建⽤户时会默认创建⽤户组 -g gid # 指定⽤户组的gid,从500开始 -f # 新增⼀个账户,强制覆盖⼀个已经存在的组账号groupdel 删除⽤户组 后⾯直接跟⽤户组的名称即可passwd 修改⽤户密码及密码过期时间等内容 -k # 为密码已经过期的⽤户更新有效期 -l # 锁定⽤户,被多订的⽤户不能登录,,只有root权限才能设置 --stdin # 从标准输⼊读取密码字符串,免交互 -u # 解除对⽤户的锁定,只有root权限才能设置 -d # 删除⽤户密码,使密码为空,仅root⽤户有权使⽤该选项 -e # 使⽤户密码⽴即过期,在⽤户下次登录时强制要求⽤户修改密码 -n # 设置修改密码最短天数 -x # 设置修改密码最长天数 -w # 设置⽤户在密码过期前收到警告信息天数 -i # 设置密码过期后多少天后禁⽤账户 -S # 显⽰⽤户密码相关的简单描述 [root@centos7 ~]# passwd # 在当前⽤户下修改密码Changing password for user root.New password:BAD PASSWORD: The password is shorter than 8 characters # 设置密码过于简单会警告,不影响Retype new password:passwd: all authentication tokens updated successfully. # 成功设置密码[root@centos7 ~]# useradd xiaolizi01 # 创建个新⽤户[root@centos7 ~]# passwd xiaolizi01 Changing password for user xiaolizi01.New password:BAD PASSWORD: The password is shorter than 8 charactersRetype new password:passwd: all authentication tokens updated successfully.[root@centos7 ~]# passwd -S xiaolizi01 # 显⽰账号密码信息xiaolizi01 PS 2019-04-180999997 -1 (Password set, SHA512 crypt.)[root@centos7 ~]# echo"123456"|passwd --stdin xiaolizi01 # 免交互式设置密码Changing password for user xiaolizi01.passwd: all authentication tokens updated successfully.[root@centos7 ~]# passwd -n 7 -x 60 -w10 -i 30 xiaolizi01 # 设置⽤户7天内不能更改密码,60天以后必须修改密码,过期前10天通知⽤户,过期后30天禁⽌⽤户登录Adjusting aging data for user xiaolizi01.passwd: Success[root@centos7 ~]# chage -l xiaolizi01 # 查看⽤户设置的列表Last password change : Apr 18, 2019Password expires : Jun 17, 2019Password inactive : Jul 17, 2019Account expires : neverMinimum number of days between password change : 7 -nMaximum number of days between password change : 60 -xNumber of days of warning before password expires : 10 -w# 批量创建⽤户,随机设置8位密码--------,拼凑命令,交给bash执⾏[root@centos7 tmp]# echo stu{01..10}|tr"""\n"|sed -r 's#(.*)#useradd \1;pass=$((RANDOM+10000000));echo "$pass"|passwd --stdin \1;echo -e "\1 `echo "$pass"`">>/tmp/xiaolizi.log#g' |bash Changing password for user stu01.passwd: all authentication tokens updated successfully.Changing password for user stu02.passwd: all authentication tokens updated successfully.Changing password for user stu03.passwd: all authentication tokens updated successfully.Changing password for user stu04.passwd: all authentication tokens updated successfully.Changing password for user stu05.passwd: all authentication tokens updated successfully.Changing password for user stu06.passwd: all authentication tokens updated successfully.Changing password for user stu07.passwd: all authentication tokens updated successfully.Changing password for user stu08.passwd: all authentication tokens updated successfully.Changing password for user stu09.passwd: all authentication tokens updated successfully.Changing password for user stu10.passwd: all authentication tokens updated successfully.[root@centos7 tmp]# cat /tmp/xiaolizi.logstu01 10016083stu02 10012250stu03 10018657stu04 10015755stu05 10010848stu06 10016321stu07 10011326stu08 10022713stu09 10028841stu10 10001627chage 查看或修改⽤户密码有效期,有些参数⽤法与passwd相同 -l # 显⽰账号有效期的信息 -M -W -X相当于passwd⾥⾯对应的⼩写字母作⽤chpasswd ⽤于从标准输⼊中读取⼀定格式的⽤户名,密码来批量更新⽤户密码,其格式为“⽤户名:密码”[root@centos7 tmp]# echo stu{01..10}:$((RANDOM+10000000))|tr"""\n" >/tmp/chpasswd.xt[root@centos7 tmp]# cat /tmp/chpasswd.xtstu01:10027593stu02:10031643stu03:10014680stu04:10030420stu05:10002831stu06:10010814stu07:10026730stu08:10015381stu09:10006139stu10:10008308[root@centos7 tmp]# chpasswd </tmp/chpasswd.xt[root@centos7 tmp]# su - stu01[stu01@centos7 ~]$ su - stu02Password:[stu02@centos7 ~]$ whoamistu02su 从当前⽤户切换到指定⽤户或者以指定⽤户的⾝份执⾏命令或程序 -c # 向shell传递单个命令 - # 切换⽤户是,将⽤户的家⽬录,系统环境等重新按切换后的⽤户初始化[stu02@centos7 ~]$ whoamistu02[stu02@centos7 ~]$ su - rootPassword:Last login: Thu Apr 1816:40:08 CST 2019 from 10.0.0.1 on pts/2[root@centos7 ~]# whoamiroot# 使系统在每⼀次开机时都能⾃动以普通⽤户启动指定的服务脚本[root@centos7 ~]# echo"su - oldboy -c '/bin/sh /service/scripts/deploy.sh'">> /etc/rc.localvisudo 此命令专门⽤来编辑/etc/sudoers这个⽂件的,同时提供语法检查,是sudo命令的配置⽂件 -c # ⼿动执⾏语法检查 ⼀般⽤于授权⽤户权限的## Allows people in group wheel to run all commands%wheel ALL=(ALL) ALLsudo 可以让普通⽤户在执⾏指定的命令或层序上,拥有超级⽤户的权限,进⾏分类,并有针对性的命令授予指定的普通⽤户 -l # 列出当前⽤户可执⾏的命令 -u # 以指定⽤户的⾝份执⾏命令id 显⽰指定⽤户真实有效的UID和GID等信息[root@centos7 tmp]# id rootuid=0(root) gid=0(root) groups=0(root)[root@centos7 tmp]# id xiaolizi01uid=1001(xiaolizi01) gid=1002(xiaolizi01) groups=1002(xiaolizi01)w 显⽰已经登录系统的⽤户,并显⽰⽤户正在执⾏命令 -h # 不显⽰前两⾏标题信息 -u # 忽略执⾏程序的名称,以及CPU时间的信息 -s # 使⽤短输出格式[root@centos7 tmp]# w18:03:13 up 4:02, 3 users, load average: 0.00, 0.01, 0.05USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 13:454:17m 0.02s 0.02s -bashroot pts/110.0.0.115:451:43m 0.29s 0.02s -bashroot pts/210.0.0.116:401.00s 0.12s 0.00s w[root@centos7 tmp]# w -hroot tty1 13:454:19m 0.02s 0.02s -bashroot pts/110.0.0.115:451:44m 0.29s 0.02s -bashroot pts/210.0.0.116:403.00s 0.12s 0.00s w -h[root@centos7 tmp]#who 显⽰已登录⽤户的信息,w的精简版 -a # 显⽰所有信息 -b # 显⽰系统的启动时间 -d # 显⽰已死的进程 -H # 显⽰标题,默认不显⽰ -l # 显⽰登录进程[root@centos7 tmp]# whoroot tty1 2019-04-1813:45root pts/12019-04-1815:45 (10.0.0.1)root pts/22019-04-1816:40 (10.0.0.1)[root@centos7 tmp]# who -bsystem boot 2019-04-1813:44[root@centos7 tmp]# who -dpts/02019-04-1817:571679id=ts/0 term=0 exit=0[root@centos7 tmp]# who -l[root@centos7 tmp]# who -HNAME LINE TIME COMMENTroot tty1 2019-04-1813:45root pts/12019-04-1815:45 (10.0.0.1)root pts/22019-04-1816:40 (10.0.0.1)[root@centos7 tmp]# who -H -aNAME LINE TIME IDLE PID COMMENT EXIT system boot 2019-04-1813:44root + tty1 2019-04-1813:4504:22911run-level 32019-04-1813:45pts/02019-04-1817:571679id=ts/0 term=0 exit=0 root + pts/12019-04-1815:4501:4716283 (10.0.0.1)root + pts/22019-04-1816:40 . 16574 (10.0.0.1)[root@centos7 tmp]#whoami 显⽰当前登录的⽤户名last 从⽇志⽂件/var/log/wtmp读取信息并显⽰⽤户最近的登录列表 -n num # 指定显⽰结果的⾏数[root@centos7 ~]# ll /var/log/wtmp-rw-rw-r--. 1 root utmp 29568 Apr 1817:57 /var/log/wtmp[root@centos7 ~]# less /var/log/wtmp"/var/log/wtmp" may be a binary file. See it anyway?[root@centos7 ~]# lastroot pts/210.0.0.1 Thu Apr 1816:40 still logged inroot pts/110.0.0.1 Thu Apr 1815:45 still logged inlastb 从/var/log/btmp中读取信息,并显⽰登录失败的记录,⽤于发现系统异常登录 [root@centos7 ~]# lastbroot tty1 Sat Oct 2700:26 - 00:26 (00:00)(unknown tty1 Fri Oct 2623:35 - 23:35 (00:00)btmp begins Fri Oct 2623:35:312018lastlog 显⽰所有⽤户的最近登录记录,异常记录,从/var/log/lastlog中读取信息[root@centos7 ~]# lastlogUsername Port From Latestroot pts/2 Thu Apr 1817:16:05 +08002019bin **Never logged in**daemon **Never logged in**adm **Never logged in**lp **Never logged in**sync **Never logged in**shutdown **Never logged in**halt **Never logged in**mail **Never logged in**operator **Never logged in**games **Never logged in**ftp **Never logged in**nobody **Never logged in**systemd-network **Never logged in**dbus **Never logged in**polkitd **Never logged in**tss **Never logged in**abrt **Never logged in**sshd **Never logged in**postfix **Never logged in**chrony **Never logged in**xiaolizi01 pts/1 Thu Apr 1816:17:20 +08002019。
Linux终端命令的多用户和多任务管理技巧合理利用系统资源
Linux终端命令的多用户和多任务管理技巧合理利用系统资源在Linux操作系统中,终端命令是管理系统资源的重要工具。
合理利用多用户和多任务管理技巧,可以提高系统的运行效率和资源利用率。
本文将介绍Linux终端命令中的一些技巧,帮助读者更好地管理多用户和多任务。
1. 用户管理在Linux中,可以创建多个用户账户,并为每个账户分配独立的权限和资源。
以下是一些常用的用户管理命令:1.1 创建用户账户:sudo adduser username通过执行此命令,可以创建一个新的用户账户,并指定用户名为"username"。
1.2 删除用户账户:sudo deluser username通过执行此命令,可以删除指定的用户账户及其相关文件和目录。
1.3 修改用户密码:sudo passwd username通过执行此命令,可以修改指定用户的密码。
1.4 查看用户列表:cat /etc/passwd通过执行此命令,可以查看系统中所有用户的列表。
1.5 切换用户:su username通过执行此命令,可以切换当前用户身份为指定用户。
2. 进程管理在Linux中,可以同时运行多个进程,通过合理管理进程,可以提高系统资源的利用率。
以下是一些常用的进程管理命令:2.1 查看进程列表:ps -ef通过执行此命令,可以查看系统中所有正在运行的进程。
2.2 杀死进程:sudo kill pid通过执行此命令,可以杀死指定pid的进程。
2.3 后台运行进程:command &通过在命令结尾处添加&符号,可以使命令在后台运行,不阻塞终端。
2.4 切换前后台进程:Ctrl+Z、fg、bg通过Ctrl+Z可以将当前前台进程暂停,并放入后台,通过fg命令可以将后台进程切换到前台运行,通过bg命令可以将暂停的前台进程切换到后台运行。
3. 资源监控在Linux中,可以通过一些命令来监控系统的资源利用情况,帮助用户合理安排任务。
linux下添加,删除,修改,查看用户和用户组
linux下添加,删除,修改,查看用户和用户组1,创建组groupadd test增加一个test组2,修改组groupmod -n test2 test将test组的名子改成test23,删除组groupdel test2删除组test24,查看组a),查看当前登录用户所在的组groups,查看apacheuser所在组groups apac一,组操作1,创建组groupadd test增加一个test组2,修改组groupmod -n test2 test将test组的名子改成test23,删除组groupdel test2删除组test24,查看组a),查看当前登录用户所在的组groups,查看apacheuser所在组groups apacheuserb),查看所有组cat /etc/groupc),有的linux系统没有/etc/group文件的,这个时候看下面的这个方法cat /etc/passwd |awk -F [:] ‘{print $4}’ |sort|uniq | getent group |awk -F [:] ‘{print $1}’这里用到一个命令是getent,可以通过组ID来查找组信息,如果这个命令没有的话,那就很难查找,系统中所有的组了.二,用户操作1,增加用户查看复制打印?[root@krlcgcms01 mytest]# useradd –helpUsage: useradd [options] LOGINOptions:-b, –base-dir BASE_DIR 设置基本路径作为用户的登录目录-c, –comment COMMENT 对用户的注释-d, –home-dir HOME_DIR 设置用户的登录目录-D, –defaults 改变设置-e, –expiredate EXPIRE_DATE 设置用户的有效期-f, –inactive INACTIVE 用户过期后,让密码无效-g, –gid GROUP 使用户只属于某个组-G, –groups GROUPS 使用户加入某个组-h, –help 帮助-k, –skel SKEL_DIR 指定其他的skel目录-K, –key KEY=VALUE 覆盖/etc/login.defs 配置文件-m, –create-home 自动创建登录目录-l, 不把用户加入到lastlog文件中-M, 不自动创建登录目录-r, 建立系统账号-o, –non-unique 允许用户拥有相同的UID-p, –password PASSWORD 为新用户使用加密密码-s, –shell SHELL 登录时候的shell-u, –uid UID 为新用户指定一个UID-Z, –selinux-user SEUSER use a specific SEUSER for the SELinux user mapping [root@krlcgcms01 mytest]# useradd --helpUsage: useradd [options] LOGINOptions:-b, --base-dir BASE_DIR 设置基本路径作为用户的登录目录-c, --comment COMMENT 对用户的注释-d, --home-dir HOME_DIR 设置用户的登录目录-D, --defaults 改变设置-e, --expiredate EXPIRE_DATE 设置用户的有效期-f, --inactive INACTIVE 用户过期后,让密码无效-g, --gid GROUP 使用户只属于某个组-G, --groups GROUPS 使用户加入某个组-h, --help 帮助-k, --skel SKEL_DIR 指定其他的skel目录-K, --key KEY=VALUE 覆盖/etc/login.defs 配置文件-m, --create-home 自动创建登录目录-l, 不把用户加入到lastlog文件中-M, 不自动创建登录目录-r, 建立系统账号-o, --non-unique 允许用户拥有相同的UID-p, --password PASSWORD 为新用户使用加密密码-s, --shell SHELL 登录时候的shell-u, --uid UID 为新用户指定一个UID-Z, --selinux-user SEUSER use a specific SEUSER for the SELinux user mappinguseradd test passwd test增加用户test,有一点要注意的,useradd增加一个用户后,不要忘了给他设置密码,不然不能登录的。
Linux 用户(User)查询篇
作者:北南南北赞助:来自:摘要:本文主要介绍在用户管理中,查询用户的几种工具介绍id 、finger、groups 以及w、who、users ;目录索引一、用户查询工具的原理;二、用户(User)和用户组(Group)查询工具;1、id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组;2、finger 工具:用来查询用户信息,侧重用户家目录、登录SHELL等;3、查询登录主机的用户工具:w 、who 、users4、groups 用户所归属的用户组查询;三、后记;四、参与修正本文;五、致谢;六、相关文档;++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++正文++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++一、用户查询工具的原理;在用户管理中,用户查询是通过几个常用的工具来完成的,比如id 、finger、groups、users ... ... ,我们都知道用户的配置文件是/etc/passwd,用户组的配置文件是/etc/groups 文件,我们对用户的查询除了通过查询工具以外,我们还能直接查看用户和用户组的配置文件来达到查询的目的;用户查询工具的原理也是读取与用户和用户组有关的配置文件,然后按一定的规则和条件输出,用户和用户组配置文件很重要,所以您有必要先读一下关有用户管理的文档:《Linux 用户(user)和用户组(group)管理概述》《用户(user)和用户组(group)配置文件详解》二、用户(User)和用户组(Group)查询工具;1、id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组;id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和GID等;id 用法极为简单;我们举个例子说明一下;语法格式: id [参数] [用户名]至于有哪些参数,自己查一下id --help 或man id ;如果id后面不接任何参数和任何用户,默认显示当前操作用户的用户名、所归属的用户组、UID和GID等;实例一:不加任何参数和用户名;[beinan@localhost ~]$ iduid=500(beinan) gid=500(beinan) groups=500(beinan)注解:在没有加任何参数的情况下,查询的是当前操作用户的用户名、UID 、GID 和所处的主用户组和附属用户组;在本例中,用户名是beinan,UID是500,所归属的主用户组是beinan,GID是500 ;实例二:id 后面接用户名;如果我们想查询系统中用户的UID和GID 相应的内容,可以直接接用户名,但用户名必须是真实的,能在/etc/passwd中查到的;[beinan@localhost ~]$ id linuxsiruid=505(linuxsir) gid=502(linuxsir) groups=502(linuxsir),0(root),500(beinan)注解:查询用户linuxsir 的信息,用户linuxsir ,UID 为505,所归属的主用户组是linuxsir,主用户组的GID是502;同时linuxsir用户也是GID为0的root用户组成员,也是GID为500用户组beinan的成员;这个例子和实例一在用户组方面有所不同,我们在《Linux 用户(user)和用户组(group)管理概述》中有提到;用户和用户组的对应关系,可以是一对一、一对多、多对一、或多对多的交叉关系,请参考之;另外您还需要掌握《用户(user)和用户组(group)配置文件详解》一文;2、finger 工具:用来查询用户信息,侧重用户家目录、登录SHELL等;finger 工具侧重于用户信息的查询;查询的内容包括用户名(也被称为登录名Login),家目录,用户真实的名字(Name)... ... 办公地址、办公电话;也包括登录终端、写状态、空闭时间等;我们最常用finger 来查询用户家目录、用户真实名、所用SHELL 类型、以及办公地址和电话,这是以参数-l 长格式输出的;而修改用户的家目录、真实名字、办公地址及办公电话,我们一般要能过chfn命令进行;语法格式:finger [参数选项] [用户名]-l 采用长格式(默认),显示由-s选项所包含的所有信息,以及主目录、办公地址、办公电话、登录SHELL、邮件状态、.plan、.project和.forward;-m 禁止对用户真实名字进行匹配;-p 把.plan和.project文件中的内容省略;-s 显示短格式,用户名(也被称为登录名Login)、真实名字(NAME)、在哪个终端登录(Tty)、写状态、空闲时间(Idle)、登录时间(Login Time)、办公地点、办公电话等;至于finger 有哪些参数,您可以通过finger --help 或man finger 来获取,我们在本文中以实例讲述最常用的参数;实例一:不接任何参数,也不指定查询用户名;默认为加了-s参数;[beinan@localhost ~]$ fingerLogin Name Tty Idle Login Time Office Office Phonebeinan beinan sun tty1 1:39 Nov 2 08:27linuxsir linuxsir open tty2 2 Nov 2 10:03 linuxsir o +1-389-866-771等价命令[beinan@localhost ~]$ finger -s注解:不加任何参数,也没有指定查询哪个用户,finger 会以默认以短格-s 来输出登录本机的所有用户的用户名(也被称为登录名Login)、真实名字(NAME)、在哪个终端登录(Tty)、写状态、空闲时间(Idle)、登录时间(Login Time)、办公地点、办公电话等;在这个例子中,有beinan用户登录,真实名字是beinan sun (这个名字是用户的真实名字,如果在添加用户时没有设置,是不会显示的),在tty1终端登录,空闭时间是1分39秒,登录时间是Nov /2/08:27 ,没有办公室名称,没有办公电话;请对照本例中beinan用户记录的解说,我们来看看本例中的linuxsir用户信息;应该不难。
Linux 用户组的相关命令
Linux 用户组的相关命令在Linux系统中,对管理用户组进行管理,除了使用图形化界面操作外,还可以使用命令关键字来进行操作。
下面将介绍怎么通过命令管理用户组信息。
1.查看用户组帐户信息使用tail命令来查看用户组帐户信息,它可以从指定点开始将File参数指定的文件标准输出。
语法格式如下所示:语法格式:或者其中,Number变量指定将多少单元写入标准输出。
Number变量的值可以是正的或负的整数。
如果值的前面有“+(加号)”,从文件开头指定的单元数开始将文件写到标准输出。
如果值的前面有“-(减号)”,则从文件末尾指定的单元数开始将文件写到标准输出。
如果值前面没有“+(加号)”或“-(减号)”,那么从文件末尾指定的单元号开始读取文件。
在该命令中各参数介绍如表9所示:序】|【附件】|【终端】命令,打开【终端】窗口。
然后,在【终端】窗口中,输入“tail /etc/group”命令并按键,完成查看用户组帐户信息的操作,如图34所示。
图34 查看用户组帐户信息2.创建用户组创建用户组可以使用groupadd命令,它用于在系统中创建一个新的用户组帐户,该用户组帐户的组标识码GID大于500。
语法格式如下所示,命令中所有参数介绍如表10所示。
表10 groupadd命令参数介绍:在使用“-g”参数时GID被指定为惟一值,除非使用“-o”参数。
而GID数值不可为负。
预设为最小不得小于500,而逐次增加0~999传统上是保留给系统帐号使用。
而“-r”参数是用来建立系统帐号的UID。
但需注意的是通过useradd命令建立的用户帐户不会建立用户帐户目录,如果用户想要创建用户帐户目录须额外指定“-m“参数来建立系统帐号。
这是RedHat额外增设的选项。
它会自动帮用户选定一个小于999的GIF不需要再加上“-g”参数。
“-f”新增一个已经存在的群组帐号,系统会出现错误信息,然后结束groupadd。
例如,创建一个feng的用户组,并指定组ID号。
linux下查看用户及用户组的方法
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-s 此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w或-T或--mesg或--message或--writable 显示用户的信息状态栏。
--help 在线帮助。
--version 显示版本信息。
----------------------------------------------------
finger命令
finger命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”,采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。
该命令的一般格式为:
No mail.
No Plan.
$ finger
Login Name Tty Idle Login Time Office Office Phone
root root *1 28 Nov 25 09:17
……
------------------------------------------------------------------
-u 修改用户ID。
-U 解除密码锁定。
Linux操作系统里查看所有用户命令查看系统命令
Linux操作系统里查看所有用户命令查看系统命令1、Linux里查看所有用户linux里,并没有像windows的net user,net localgroup这些方便的命令来治理用户. Xwindows界面的就不说了. (1)在终端里.其实只需要查看/etc/passwd文件就行了. (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户. 或者用cat /etc/passwd |cut -f 1 -d :2、用户治理命令useradd 注:添加用户adduser 注:添加用户passwd 注:为用户设置密码usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;pwcov 注:同步用户从/etc/passwd 到/etc/shadow pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow 和/etc/passwd 创建/etc/passwd ,然后会删除/etc/shadow 文件;finger 注:查看用户信息工具id 注:查看用户的UID、GID及所归属的用户组chfn 注:更改用户信息工具su 注:用户切换工具sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;visudo 注:visodo 是编辑/etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑/etc/sudoers 的效果是一样的;sudoedit 注:和sudo 功能差不多;3、治理用户组(group)的工具或命令;groupadd 注:添加用户组;groupdel 注:删除用户组;groupmod 注:修改用户组信息groups 注:显示用户所属的用户组grpck grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,假如/etc/gshadow 不存在则创建;grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件。
Linux学习-用户和组查询总结
用户和组账号查询在用户管理工作中,虽然直接查看用户账号、组账号的配置文件也可以查询相关信息,但是并不是很只直观,在linux系统中,还可以使用几个常用的查询命令工具,如id、groups、finger、users等。
1,groups命令——查询某个用户账号所属的组。
例子:分别查询当前用户root和daemon(后台程序)用户所属的组账号的信息。
~]#groups~]#groups daemon1,finger命令——查询用户账号的详细信息例子:以每行一条用户记录的形式查看当前登录到本机的所有用户账号的详细信息,包括用户名、登录终端、空闲时间、登录时间等。
~]#finger以多行显示的方式查看指定用户账号ftp、teacher的详细信息(可以是未登录的用户)~]#finger -l ftp~]#finger -l teacher2,users、w、who命令——查询当前登录到主机的用户信息与单独执行的“finger”命令相类似,使用users、w、who这三个命令也可以查询已登录到当前主机的用户信息。
三个命令查询的侧重点不同。
例子:比较finger、users、w、who命令输出信息的异同。
~]#finger (列出用户登录名、终端、登录时间及个人信息等)~]#w (列出用户名、终端、执行的命令等各种统计信息)~]#who (列出用户名、终端、登录时间、来源地点等信息)~]#users (仅列出用户名信息)第五,图形化的用户和组管理工具在RHEL5系统的图形桌面环境中,提供了专门的用户和组管理工具,大大降低了对用户和组账号管理的难度,可以作为linux初学者的辅助管理手段。
通过选择桌面环境中的“系统”→“管理”→“用户和组群”菜单项,或者按Alt+F2键后运行“system-config-users”,根据提示输入管理员的密码后即可启动“用户管理者”程序。
查看linux中所有用户的三种方式
查看linux中所有⽤户的三种⽅式⼤家都知道,系统中⽤户信息存放在/etc/passwd ⽂件中。
这是⼀个包含每个⽤户基本信息的⽂本⽂件。
当我们在系统中创建⼀个⽤户,新⽤户的详细信息就会被添加到这个⽂件中。
/etc/passwd ⽂件将每个⽤户的基本信息记录为⽂件中的⼀⾏,⼀⾏中包含 7 个字段。
/etc/passwd ⽂件的⼀⾏代表⼀个单独的⽤户。
该⽂件将⽤户的信息分为 3 个部分。
* 第 1 部分:`root` ⽤户信息* 第 2 部分:系统定义的账号信息* 第 3 部分:真实⽤户的账户信息第⼀部分是root 账户,这代表管理员账户,对系统的每个⽅⾯都有完全的权⼒。
第⼆部分是系统定义的群组和账户,这些群组和账号是正确安装和更新系统软件所必需的。
第三部分在最后,代表⼀个使⽤系统的真实⽤户。
在创建新⽤户时,将修改以下 4 个⽂件。
* `/etc/passwd`:⽤户账户的详细信息在此⽂件中更新。
* `/etc/shadow`:⽤户账户密码在此⽂件中更新。
* `/etc/group`:新⽤户群组的详细信息在此⽂件中更新。
* `/etc/gshadow`:新⽤户群组密码在此⽂件中更新。
** 建议阅读 : **[1][2][3]/etc/passwd ⽂件使⽤任何⼀个像cat、more、less 等⽂件操作命令来打印 Linux 系统上创建的⽤户列表。
/etc/passwd 是⼀个⽂本⽂件,其中包含了登录 Linux 系统所必需的每个⽤户的信息。
它保存⽤户的有⽤信息,如⽤户名、密码、⽤户 ID、群组 ID、⽤户 ID 信息、⽤户的家⽬录和。
/etc/passwd ⽂件将每个⽤户的详细信息写为⼀⾏,其中包含七个字段,每个字段之间⽤冒号: 分隔:# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologintcpdump:x:72:72::/:/sbin/nologin2gadmin:x:500:10::/home/viadmin:/bin/bashapache:x:48:48:Apache:/var/www:/sbin/nologinzabbix:x:498:499:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologinmysql:x:497:502::/home/mysql:/bin/bashzend:x:502:503::/u01/zend/zend/gui/lighttpd:/sbin/nologinrpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin2daygeek:x:503:504::/home/2daygeek:/bin/bashnamed:x:25:25:Named:/var/named:/sbin/nologinmageshm:x:506:507:2g Admin - Magesh M:/home/mageshm:/bin/bash7 个字段的详细信息如下。
Linux查看用户和组命令
Linux查看⽤户和组命令在Linux系统⾥,我们会经常⽤Linux查看⽤户的命令,在这⾥我们⼀些命令进⾏了总结,总共有7个,并做了详细的解释,以便让⼤家更深⼊的理解,接下来让我们⼀起来看看这些命令和具体应⽤。
⼀、Linux查看⽤户命令w命令 该命令⽤于显⽰登录到系统的⽤户情况,w命令功能强⼤,它不但可以显⽰有谁登录到系统,还可以显⽰出这些⽤户当前正在进⾏的⼯作,并且统计数据相对who命令来说更加详细和科学. w命令的显⽰项⽬按以下顺序排列:当前时间,系统启动到现在的时间,登录⽤户的数⽬,系统在最近1秒、5秒和15秒的平均负载。
然后是每个⽤户的各项数据,项⽬显⽰顺序如下:登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运⾏进程的命令⾏。
其中JCPU时间指的是和该终端(tty)连接的所有进程占⽤的时间。
这个时间⾥并不包括过去的后台作业时间,但却包括当前正在运⾏的后台作业所占⽤的时间。
⽽PCPU时间则是指当前进程(即在WHAT项中显⽰的进程)所占⽤的时间。
下⾯介绍该命令的具体⽤法和参数。
⼆、Linux查看⽤户命令who命令 该命令主要⽤于查看当前在线上的⽤户情况。
这个命令⾮常有⽤。
如果⽤户想和其他⽤户建⽴即时通讯,⽐如使⽤talk命令,那么⾸先要确定的就是该⽤户确实在线上,不然talk进程就⽆法建⽴起来。
⼜如,系统管理员希望监视每个登录的⽤户此时此刻的所作所为,也要使⽤who命令。
login name:登录⽤户名; terminal line:使⽤终端设备; login time:登录到系统的时间。
下⾯对who命令的常⽤参数进⾏说明。
-m 它的效果同who am i显⽰出⾃⼰在系统中的⽤户名,登录终端,登录时间 -q 只显⽰⽤户的登录帐号和登录⽤户的数量 -s 忽略,它同于who -r 可以查看当前系统的运⾏级别 run-level 3 Apr 21 09:37 last=S -H,--heading 显⽰⼀⾏列标题。
Linu操作系统查看服务器系统信息命令linu系统
Linux操作系统查看服务器系统信息命令linux系统系统:uname-a查看内核/操作系统/CPU信息head-n1/etc/issue查看操作系统版本cat/proc/cpuinfo查看CPU信息hostname查看计算机名lspci-tv列出所有PCI设备lsusb-tv列出所有USB设备lsmod列出加载的内核模块env查看环境变量资源:free-m查看内存使用量和交换区使用量df-h查看各分区使用情况du-sh<目录名>查看指定目录的大小grepMemTotal/proc/meminfo查看内存总量grepMemFree/proc/meminfo查看空闲内存量uptime查看系统运行时间、用户数、负载cat/proc/loadavg查看系统负载磁盘和分区:mount|column-t查看挂接的分区状态fdisk-l查看所有分区swapon-s查看所有交换分区hdparm-i/dev/hda查看磁盘参数仅适用于IDE设备dmesg|grepIDE查看启动时IDE设备检测状况网络:ifconfig查看所有网络接口的属性iptables-L查看防火墙设置route-n查看路由表netstat-lntp查看所有监听端口netstat-antp查看所有已经建立的连接netstat-s查看网络统计信息用户:w查看活动用户id<用户名>查看指定用户信息last查看用户登录日志cut-d:-f1/etc/passwd查看系统所有用户cut-d:-f1/etc/group查看系统所有组crontab-l查看当前用户的计划任务服务:chkconfig--list列出所有系统服务chkconfig--list|grepon列出所有启动的系统服务目录:pushd.将当前目录入栈popd回到上一次入栈的目录技术门户网,为中国Unix/Linux软件开发者建造一个属于我们的互联网家园,为中国Unix/Linux的发展撑起一片蓝天。
3.1.1linux用户管理:常用查询(debian和RedHat通用):用户查询
3.1.1linux用户管理:常用查询(debian和RedHat通用):用户查询
1.常用命令
$ who ##查询所有的shell登陆用户$ who I am ##查询当前登陆的用户$ cat /etc/passwd ##查询所有用户的数据库$ cat /etc/passwd | grep sgx ##查询指定用户的数据库
2.查询当前登录用户
$ who i am
sgx pts/1 2018-10-26 17:21 (:0)
2.查询所有登录用户
$ who sgx :0 2018-10-25 11:51 (:0) sgx pts/9 2018-10-25 11:51 (:0) sgx pts/1 2018-10-26 17:21 (:0)
查询用户的数据库(所有用户)
$ cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/sync
查询用户数据库(指定用户 grep )
$ cat /etc/passwd | grep sgx sgx:x:1000:1000:sgx,,,:/home/sgx:/bin/bash
Linux中用户与用户组管理
Linux中⽤户与⽤户组管理1.基础知识Linux作为⼀种多⽤户的操作系统(服务器系统),允许多个⽤户同时登陆到系统上,并响应每个⽤户的请求。
任何需要使⽤操作系统的⽤户,都需要⼀个系统账号,账号分为:管理员账号与普通⽤户账号。
在Linux中,操作系统根据UID来判断⽤!根据UID来判断⽤户!⽽不是⽤户名!只要id为0就是管理员,哪怕有多个id为0 的账号系统在新建账号时,会根据账号类型,⾃动分配递增账号的UID与GID (⽤户⾝份编号,组编号),也可⾃⾏分配。
通常情况下,应当保证UID与GID 唯⼀且不重复。
1.1 组的类别在Linux中,每个⽤户必须有⼀个主组。
当创建账号时,系统会⾃动创建⼀个同名组作为该账户的主组。
⽤户必须属于⼀个且只有⼀个主组。
⽤户可以属于零个或者多个附加组。
1.2 ⽤户与组的配置⽂件在Linux中,万物皆⽂件,所以⽤户与组也以配置⽂件的形式保存在系统中,以下为⽤户和组的主要配置⽂件详解:- /etc/passwd:⽤户及其属性信息(名称、 UID、主组ID等)- /etc/group:组及其属性信息- /etc/shadow:⽤户密码及其相关属性- /etc/gshadow:组密码及其相关属性passwd⽂件格式如下图:依次含义为:登录⽤户名密码UIDGID全名或注释⽤户主⽬录⽤户默认使⽤shellgroup⽂件格式如下图:依次含义为:群组名称群组密码(通常不需要设定,密码被记录在/etc/gshadow)GID:群组ID附加组(以,来分割,该账户没有附加组所以为空)shadow⽂件格式如下图:依次含义为:登录⽤户名密码(通常使⽤shad512加密)从1970年1⽉1⽇起计算到现在为⽌密码最近⼀次被更改的时间密码再过⼏天就可以被修改(0表⽰随时可改)密码⼏天后必须变更(99999表⽰永不过期)密码过期前多久提⽰⽤户密码过期多久后账户将被锁定多少天后账户将失效(从1970-1-1算起)gshadow⽂件格式如下图:依次含义为:群组名称群组密码组管理员列表当前⽤户的附加组2.⽤户账号管理在Linux,管理员在默认情况下为root账户,UID=0。
[Linux小技巧]查看文件夹大小及所属用户组
[Linux⼩技巧]查看⽂件夹⼤⼩及所属⽤户组⼀、linux中查看⽂件夹⼤⼩及所属⽤户组——du和ls命令参数的⽤法du命令使⽤⽰例:1> 要显⽰⼀个⽬录树及其每个⼦树的磁盘使⽤情况du -h /home/linux#-h ⾃动根据⼤⼩以k、m、g为单位显⽰,提⾼信息的可读性。
kb、mb、gb是以1024为换算单位, -h以1000为换算单位;#若省略/home/linux路径⽬录,则显⽰当前⽬录的;du -sh /home/linux#-s 仅显⽰总计,即显⽰路径⽬录或当前⽬录的总⼤⼩。
2>查看当前⽬录下所有⽬录以及⼦⽬录的⼤⼩:du -h .#“.”代表当前⽬录下。
也可以换成⼀个明确的路径#-h表⽰⾃动⽤K、M、G的⼈性化形式显⽰3>查看当前⽬录下user⽬录的⼤⼩,并不想看其他⽬录以及其⼦⽬录:du -sh user#-s表⽰总结的意思,即只列出⼀个总结的值du -h –max-depth=0 user–max-depth=n表⽰只深⼊到第n层⽬录,此处设置为0,即表⽰不深⼊到⼦⽬录。
4>列出user⽬录及其⼦⽬录下所有⽬录和⽂件的⼤⼩:du -ah user#-a表⽰包括⽬录和⽂件5>列出当前⽬录中的⽬录名不包括xyz字符串的⽬录的⼤⼩:du -h –exclude=’*xyz*’6>想在⼀个屏幕下列出更多的关于user⽬录及⼦⽬录⼤⼩的信息:du -0h user#-0(杠零)表⽰每列出⼀个⽬录的信息,不换⾏,⽽是直接输出下⼀个⽬录的信息。
=========================================================================Du命令功能说明:统计⽬录(或⽂件)所占磁盘空间的⼤⼩。
语 法:du [-abcDhHklmsSx] [-L <符号连接>][-X <⽂件>][--block-size][--exclude=<⽬录或⽂件>] [--max-depth=<⽬录层数>][--help][--version][⽬录或⽂件]常⽤参数:-a或-all 为每个指定⽂件显⽰磁盘使⽤情况,或者为⽬录中每个⽂件显⽰各⾃磁盘使⽤情况。
Linux查看系统配置常用命令
Linux查看系统配置常用命令Linux查看系统配置常用命令指令系统是计算机硬件的语言系统,也叫机器语言,指机器所具有的全部指令的集合,Linux查看系统配置常用命令有哪些呢?下面是Linux查看系统配置常用命令,欢迎阅读。
系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv # 列出所有USB设备# lsmod # 列出加载的内核模块# env # 查看环境变量资源# free -m # 查看内存使用量和交换区使用量# df -h # 查看各分区使用情况# du -sh <目录名> # 查看指定目录的大小# grep MemTotal /proc/meminfo # 查看内存总量# grep MemFree /proc/meminfo # 查看空闲内存量# uptime # 查看系统运行时间、用户数、负载# cat /proc/loadavg # 查看系统负载磁盘和分区# mount | column -t # 查看挂接的分区状态# fdisk -l # 查看所有分区# swapon -s # 查看所有交换分区# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)# dmesg | grep IDE # 查看启动时IDE设备检测状况网络# ifconfig # 查看所有网络接口的属性# iptables -L # 查看防火墙设置# route -n # 查看路由表# netstat -lntp # 查看所有监听端口# netstat -antp # 查看所有已经建立的连接# netstat -s # 查看网络统计信息进程# ps -ef # 查看所有进程# top # 实时显示进程状态用户# w # 查看活动用户# id <用户名> # 查看指定用户信息# last # 查看用户登录日志# cut -d: -f1 /etc/passwd # 查看系统所有用户# cut -d: -f1 /etc/group # 查看系统所有组# crontab -l # 查看当前用户的计划任务服务# chkconfig --list # 列出所有系统服务# chkconfig --list | grep on # 列出所有启动的系统服务程序# rpm -qa # 查看所有安装的软件包Linux系统监控常用命令1、freefree - Display amount of free and used memory in the system 【功能】显示系统使用及空闲的.内存情况【参数】-b:显示内存的单位为bytes(默认)-k:显示内存的单位为KB-m:显示内存的单位为M-g:显示内存的单位为G-s:<时间> 每隔指定时间执行一次命令,单位为s【样例1】//以M为单位每5s显示系统内存使用情况# free -ms 52、lsoflsof - list open files【功能】列出当前系统打开文件(可查看打开文件的进程,进程打开的端口) 【参数】-i:监听有关的任何符合的地址(默认监控全部)[用法]:lsof -i [46][protocol][@hostname|hostaddr][:serivce|port][说明]:4代表IPv4,6代表IPv6protocol:TCP or UDPhostname:internet host namehostaddr:IPv4地址service:/etc/service中的service nameport:端口号【样例1】//查看系统21端口的状态# lsof -i:21//查看系统所有TCP端口状态# lsof -i TCP3、vmstatvmstat - Report virtual memory statistics【功能】显示虚拟内存统计信息【语法格式】# vmstat [必要参数][选择参数]【参数】必要参数:-a:显示所有虚拟内存信息选择参数:-S:<单位> 指定显示单位k,K,m,M(默认为kb)【样例1】//以M为单位显示系统所有虚拟内存统计信息# vmstat -a -S M4、iostatiostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices, partitions and network filesystems (NFS)。
linux下所有用户及所有用户组操作
linux下所有用户及所有用户组操作groups 查看当前登录用户的组内成员groups gliethttp 查看gliethttp用户所在的组,以及组内成员whoami 查看当前登录用户名/etc/group文件包含所有组/etc/shadow和/etc/passwd系统存在的所有用户名1、/etc/group 解说;/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。
比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,2、/etc/group 内容具体分析/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:group_name:passwd:GID:user_list在/etc/group 中的每条记录分四个字段:第一字段:用户组名称;第二字段:用户组密码;第三字段:GID第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;============================================================================ Linux 用户(user)和用户组(group)管理概述参考网址:/main/?q=node/91一、理解Linux的单用户多任务,多用户多任务概念;Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念;1、Linux 的单用户多任务;单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit 、xmms以及msn等,当然还有输入法fcitx ;这样说来就有点简单了,一个beinan用户,为了完成工作,执行了几个任务;当然beinan这个用户,其它的人还能以远程登录过来,也能做其它的工作。
linux系统管理 用户与 组
1.查看用户账号文件---passwd的权限
2.查看用户账号文件---passwd的前十条记录,理解每个字段的含义
登录名//加密口令//口令上次更改时间距1970.1.1的天数//口令变更后不可以更改的天数//有效期//口令失效前警告的天数//口令失效后距账号被查封的天数//账号被封时距1970.1.1的天数//保留未用
3.查看用户口令文件---shadow的权限
4.查看用户口令文件---shadow的前十条记录,理解每个字段的含义
5.添加一个用户tom ,查看该用户可在账户文件里
6.给tom用户添加密码。
7.切换到tom用户(试下su 和su-)
8.删除tom用户
9.查看用户组账号文件---group的权限
10.查看用户组账号文件---groupd的前十条记录,理解每个字段的含义
11.查看用户口令文件---gshadow的权限
12.查看用户口令文件---gshadow的前十条记录,理解每个字段的含义
13.创建组账号zu1,和组的系统账号zu2
14.创建用户wang 到zu1中,再查看可在zu1中(看组的ID号是否相同)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux下查看所有用户及所有用户组groups 查看当前登录用户的组内成员groups gliethttp 查看gliethttp用户所在的组,以及组内成员whoami 查看当前登录用户名/etc/group文件包含所有组/etc/shadow和/etc/passwd系统存在的所有用户名1、/etc/group 解说;/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。
比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,2、/etc/group 内容具体分析/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:group_name:passwd:GID:user_list在/etc/group 中的每条记录分四个字段:第一字段:用户组名称;第二字段:用户组密码;第三字段:GID第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;============================================================================ Linux 用户(user)和用户组(group)管理概述参考网址:/main/?q=node/91一、理解Linux的单用户多任务,多用户多任务概念;Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念;1、Linux 的单用户多任务;单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit 、xmms以及msn等,当然还有输入法fcitx ;这样说来就有点简单了,一个beinan用户,为了完成工作,执行了几个任务;当然beinan这个用户,其它的人还能以远程登录过来,也能做其它的工作。
2、Linux 的多用户、多任务;有时可能是很多用户同时用同一个系统,但并不所有的用户都一定都要做同一件事,所以这就有多用户多任务之说;举个例子,比如 服务器,上面有FTP 用户、系统管理员、web 用户、常规普通用户等,在同一时刻,可能有的弟兄正在访问论坛;有的可能在上传软件包管理子站,比如luma 或Yuking 兄在管理他们的主页系统和FTP ;在与此同时,可能还会有系统管理员在维护系统;浏览主页的用的是nobody 用户,大家都用同一个,而上传软件包用的是FTP用户;管理员的对系统的维护或查看,可能用的是普通帐号或超级权限root帐号;不同用户所具有的权限也不同,要完成不同的任务得需要不同的用户,也可以说不同的用户,可能完成的工作也不一样;值得注意的是:多用户多任务并不是大家同时挤到一接在一台机器的的键盘和显示器前来操作机器,多用户可能通过远程登录来进行,比如对服务器的远程控制,只要有用户权限任何人都是可以上去操作或访问的;3、用户的角色区分;用户在系统中是分角色的,在Linux 系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性;root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限;虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户;普通真实用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的;4、多用户操作系统的安全;多用户系统从事实来说对系统管理更为方便。
从安全角度来说,多用户管理的系统更为安全,比如beinan用户下的某个文件不想让其它用户看到,只是设置一下文件的权限,只有beinan 一个用户可读可写可编辑就行了,这样一来只有beinan一个用户可以对其私有文件进行操作,Linux 在多用户下表现最佳,Linux能很好的保护每个用户的安全,但我们也得学会Linux 才是,再安全的系统,如果没有安全意识的管理员或管理技术,这样的系统也不是安全的。
从服务器角度来说,多用户的下的系统安全性也是最为重要的,我们常用的Windows 操作系统,它在系纺权限管理的能力只能说是一般般,根本没有没有办法和Linux或Unix 类系统相比;二、用户(user)和用户组(group)概念;1、用户(user)的概念;通过前面对Linux 多用户的理解,我们明白Linux 是真正意义上的多用户操作系统,所以我们能在Linux系统中建若干用户(user)。
比如我们的同事想用我的计算机,但我不想让他用我的用户名登录,因为我的用户名下有不想让别人看到的资料和信息(也就是隐私内容)这时我就可以给他建一个新的用户名,让他用我所开的用户名去折腾,这从计算机安全角度来说是符合操作规则的;当然用户(user)的概念理解还不仅仅于此,在Linux系统中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问 的网页程序,就是nobody用户;我们匿名访问ftp 时,会用到用户ftp或nobody ;如果您想了解Linux系统的一些帐号,请查看/etc/passwd ;2、用户组(group)的概念;用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;举例:我们为了让一些用户有权限查看某一文档,比如是一个时间表,而编写时间表的人要具有读写执行的权限,我们想让一些用户知道这个时间表的内容,而不让他们修改,所以我们可以把这些用户都划到一个组,然后来修改这个文件的权限,让用户组可读,这样用户组下面的每个用户都是可读的;用户和用户组的对应关系是:一对一、多对一、一对多或多对多;一对一:某个用户可以是某个组的唯一成员;多对一:多个用户可以是某个唯一的组的成员,不归属其它用户组;比如beinan和linuxsir 两个用户只归属于beinan用户组;一对多:某个用户可以是多个用户组的成员;比如beinan可以是root组成员,也可以是linuxsir 用户组成员,还可以是adm用户组成员;多对多:多个用户对应多个用户组,并且几个用户可以是归属相同的组;其实多对多的关系是前面三条的扩展;理解了上面的三条,这条也能理解;三、用户(user)和用户组(group)相关的配置文件、命令或目录;1、与用户(user)和用户组(group)相关的配置文件;1)与用户(user)相关的配置文件;/etc/passwd 注:用户(user)的配置文件;/etc/shadow 注:用户(user)影子口令文件;2)与用户组(group)相关的配置文件;/etc/group 注:用户组(group)配置文件;/etc/gshadow 注:用户组(group)的影子文件;2、管理用户(user)和用户组(group)的相关工具或命令;1)管理用户(user)的工具或命令;useradd 注:添加用户adduser 注:添加用户passwd 注:为用户设置密码usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;pwcov 注:同步用户从/etc/passwd 到/etc/shadowpwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和/etc/passwd 创建/etc/passwd ,然后会删除/etc/shadow 文件;finger 注:查看用户信息工具id 注:查看用户的UID、GID及所归属的用户组chfn 注:更改用户信息工具su 注:用户切换工具sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;visudo 注:visodo 是编辑/etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑/etc/sudoers 的效果是一样的;sudoedit 注:和sudo 功能差不多;2)管理用户组(group)的工具或命令;groupadd 注:添加用户组;groupdel 注:删除用户组;groupmod 注:修改用户组信息groups 注:显示用户所属的用户组grpck grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;3、/etc/skel 目录;/etc/skel目录一般是存放用户启动文件的目录,这个目录是由root权限控制,当我们添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下;/etc/skel 目录下的文件都是隐藏文件,也就是类似.file格式的;我们可通过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一、标准的、默认的用户环境;[root@localhost beinan]# ls -la /etc/skel/总用量 92drwxr-xr-x 3 root root 4096 8月 11 23:32 .drwxr-xr-x 115 root root 12288 10月 14 13:44 ..-rw-r--r-- 1 root root 24 5月 11 00:15 .bash_logout-rw-r--r-- 1 root root 191 5月 11 00:15 .bash_profile-rw-r--r-- 1 root root 124 5月 11 00:15 .bashrc-rw-r--r-- 1 root root 5619 2005-03-08 .canna-rw-r--r-- 1 root root 438 5月 18 15:23 .emacs-rw-r--r-- 1 root root 120 5月 23 05:18 .gtkrcdrwxr-xr-x 3 root root 4096 8月 11 23:16 .kde-rw-r--r-- 1 root root 658 2005-01-17 .zshrc/etc/skel 目录下的文件,一般是我们用useradd 和adduser 命令添加用户(user)时,系统自动复制到新添加用户(user)的家目录下;如果我们通过修改 /etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把/etc/skel 下的文件复制到用户的家目录下,然后要用chown 来改变新用户家目录的属主;4、/etc/login.defs 配置文件;/etc/login.defs 文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的;比如Fedora 的 /etc/logins.defs 文件内容;# *REQUIRED* # Directory where mailboxes reside, _or_ name of file, relative to the # home directory. If you _do_ define both, MAIL_DIR takes precedence.# QMAIL_DIR is for Qmail# #QMAIL_DIR Maildir MAIL_DIR /var/spool/mail 注:创建用户时,要在目录/var/spool/mail 中创建一个用户mail文件;#MAIL_FILE .mail# Password aging controls: ## PASS_MAX_DAYS Maximum number of days a password may be used.# PASS_MIN_DAYS Minimum number of days allowed between password changes.# PASS_MIN_LEN Minimum acceptable password length.# PASS_WARN_AGE Number of days warning given before a password expires.# PASS_MAX_DAYS 99999注:用户的密码不过期最多的天数;PASS_MIN_DAYS 0注:密码修改之间最小的天数;PASS_MIN_LEN 5注:密码最小长度;PASS_WARN_AGE 7注:## Min/max values for automatic uid selection in useradd# UID_MIN 500注:最小UID为500 ,也就是说添加用户时,UID 是从500开始的;UID_MAX 60000注:最大UID为60000;## Min/max values for automatic gid selection in groupadd # GID_MIN 500注:GID 是从500开始;GID_MAX 60000 ## If defined, this command is run when removing a user.# It should remove any at/cron/print jobs etc. owned by# the user to be removed (passed as the first argument). ##USERDEL_CMD /usr/sbin/userdel_local ## If useradd should create home directories for users by default# On RH systems, we do. This option is ORed with the -m flag on# useradd command line. # CREATE_HOME yes 注:是否创用户家目录,要求创建;5、/etc/default/useradd 文件;通过useradd 添加用户时的规则文件;# useradd defaults fileGROUP=100HOME=/home 注:把用户的家目录建在/home中;INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用;EXPIRE= 注:帐号终止日期,不设置表示不启用;SHELL=/bin/bash 注:所用SHELL的类型;SKEL=/etc/skel 注:默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;后记:关于用户(user)和用户组(group)管理内容大约就是这么多;只要把上面所说的内容了解和掌握,用户(user)和用户组(group)管理就差不多了;由于用户(user)和用户组(group)是和文件及目录权限联系在一起的,所以文件及目录权限的操作也会独立成文来给大家介绍;本文只是让新手弟兄明白用户(user)和用户组(group)一些原理,所以我在写此文的时候,大多是解说内容,我的意思是通过解说和索引一些命令,让新手弟兄明白一点理论是比较重要的,技术操作无非是命令的用法;=================================================================Linux用户、用户组、文件权限学习笔记参考网址:/other_dev_tech/linux-user-and-file-manage.ht ml最近打算更仔细学习一下linux操作系统。