1.在/etc/group和/etc/gshadow中查找mousegroup:  grep mousegroup /etc/group /etc/gshadow  (grep的使用)

2.其实Linux并不认识你的"帐号名称",他仅仅认识ID.每个登录的用户至少都会取得两个ID,一个是用户ID(UID),另一个是用户组ID(GID).跟用户帐号有关的两个非常重要的文件:一个是管理用户UID/GID重要参数的/etc/passwd.另一个是专门管理密码相关数据的/etc/shadow.

3./etc/passwd的文件结构:每一行都代表一个帐号,有几行就代表有几个帐号在系统中像bin,daemon,adm,nobody这些帐号是系统正常运行所必须的,他们被称作系统帐号.

  例如:  head -n 1 /etc/passwd    执行之后会显示的内容:  root:x:0:0:root:/root:/bin/bash(每一行使用":"分隔,共有七个字段)

                           他们分别为: 帐号名称:密码:UID:GID:用户信息说明:主文件夹(该用户登录时会立刻跑到这个目录中来):Shell

                           对于UID有几点说明:0为系统管理员,1~499保留给系统使用的

4./etc/shadow文件结构:

   例如: head -n 1 /etc/shadow    

   执行之后显示的内容: root:$6$CQBVuQIT$oF1m.fPaVvsQTkHxZEPRrLeScol7Su10ABJdk43tsbyTS1t/lPLDmYWk.xufxn75cnRnBN.vOCzTIUW4gpobP1:15877:0:99999:7::: 

   shadow同样以":"作为分隔符,有9个字段.  

  帐号名称:密码(密文):最近更改密码的日期:密码不可改动的天数:密码需要重新更改的天数:密码需要更改期限前警告天数:密码过期后的宽限时间:帐号失效时间:保留

  参数说明:  密码不可改动的天数:若为0,表示密码随时可以修改.若为20表示,设置密码之后20天之内都无法改变这个密码.

         密码需要重新更改的天数:若为20,表示最近一次更改密码之后在20天内需要再次更改密码.

         密码需要更改期限前警告天数:若为7,表示密码到期之前的7天内,系统会警告该用户.

         密码过期后的宽限时间:密码过期后,当你登录系统时,系统会强制要求必须重新设定密码才能继续使用.

         帐号失效时间:帐号在此字段规定的日期后,将无法再使用.(通常应用在"收费服务"中)

5.帐号的两个文件(/etc/passwd和/etc/shadow)了解完之后,来了解用户组的文件:/etc/group和/etc/gshadow.

6./etc/group的文件结构:每一行代表一个用户组,以":"作为字段的分隔符.有4个字段.

   例如:  head -n 1 /etc/group    执行后的结果为:  root:x:0:root

       用户组名称:用户组密码:GID(我们/etc/passwd第四个字段使用的GID就是这个):此用户组支持的帐号名称(举例来说:若想要让yhw也加入root这个用户组,在第一行的        最后加上“,dmtsai”就行了,使其变成“root:x:0:root,yhw”就可以了)

7.有效用户组:每个用户的/etc/passwd里面的第四列有所谓的GID,那个就是这个用户的初始用户组。也就是说,当该用户登录系统后,立刻就拥有这个用户组的相关权限。

    有几点要注意一下:若一个用户的初始用户组是wjygroup,则在wjygroup的/etc/group的第四个字段不用写入该帐号,因为是初始用户组。若某个用户想加入yhwgroup组,而    yhwgroup不是他的初始用户组,则需要在yhwgroup的/etc/group的第四列加上“,这个用户的帐号名”。

    在读取/写入/执行文件时,针对用户组部分,只要是该用户所在用户组拥有的功能,该用户都拥有。但是,若要新建一个新的文件或目录,新文件的组是哪一个就要看当时的有效用    户组是哪一个了。使用groups命令,查看当时有效用户组,第一个输出的即为有效用户组。有效用户组切换命令:  newgrp 用户组名(newgrp是另外以一个shell来提供这个功能    的,所以想回到原来环境输入exit就行了)。

8./etc/gshadow的文件结构:这个文件以“:”分隔,第二个字段为密码列,如果密码列上为“!”,表示该用户组不具有用户组管理员(无合法密码)。

      例如:  head -n 1 /etc/gshadow    结果为:  root:::root

                          用户组名:密码列:用户组管理员帐号:该用户组支持的帐号

9.新增用户:  useradd 用户名(具体参数查看书P409)

        例如:新增一个用户,指定其UID为700(不存在),指定其初始用户组为mousegroup(已经存在):  useradd -u 700 -g mousegroup yhw

    其实useradd的默认值可以使用useradd -D调出来。  例如:可以新建/etc/skel/www目录,这样新增的用户在他的主文件夹下就会有www这个文件夹。

10.使用useradd新增了用户之后,该帐号是被封锁的,需要使用passwd设置其密码。root更改其他用户密码的方式:  passwd 账号名。  

                                      用户自己更改自己密码的方式(root也是这样):  passwd

        例如:管理yhw的密码,使其具有60天内要更改密码,超期10天密码失效的设置:  passwd -S yhw; passwd -x 60 -i 10 yhw; passwd -S yhw

           让帐号wjy失效:  passwd -l wjy

           让账号wjy重新激活:passwd -u wjy    (当使用passwd -S wjy查看时,若第二字段为P则是激活状态。若为L则为锁定失效状态。)

11.chage -l 账号名(查看该帐号的详细密码信息).    有趣的功能:新建一个名为yhw的帐号,该帐号第一次登录使用默认密码,但必须更改密码后使用新密码才能登录系统使用bash.

        useradd yhw;echo "123" | passwd --stdin yhw; chage -d 0 yhw

12.对账号的信息进行微调使用usermod命令(P416)。删除用户使用userdel 用户名(-r连同主文件夹一起删掉)

    注意:如果想要完整的将某个账号删除,最好可以在执行userdel -r username之前,先执行find / -user username查出整个系统内属于username的文件,再进行删除。

13.finger这个命令可以查阅很多的用户相关信息(P417)。  chfn这个命令可以更改自己的相关信息。(P418)  chsh可以更改shell.  id命令可以查询某人或自己的相关UID/GID    等信息。

14.与对用户的操作很相似,P420对用户组的操作命令有:groupadd(新增用户组),groupmod(微调用户组信息),groupdel(删除用户组)。若某个账号的初始用户组使用了某个用户  组,则该用户组无法删除。

15.如果系统管理员太忙,可以新建用户组管理员(相当于版主)。

      例如:新建一个用户组,名称为mousegroup且用户组交给wjy管理:  groupadd mousegroup; gpasswd mousegroup    gpasswd -A wjy mousegroup

         以wjy登录系统,并且让他加入自己和yhw成为mousegroup成员:  gpasswd -a wjy mousegroup; gpasswd -a yhw mousegroup

16.ACL是Access Control List的缩写,主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置。ACL可以针对单一用户,单一文件或目录进行     r,w,x的权限设置,对于需要特殊权限的使用情况很有帮助。(还没有看,详见P423)

17.用户身份切换命令;su(切换成root,输入su或者su -)(输入exit可以离开su环境)

    例如:执行一个只有root执行的命令,执行后还是原身份:  su - -c "head -n 3 /etc/shadow"(这个必须知道root密码)

      切换成yhw账户:  su -l yhw

    虽然root很方便,但是当我的主机是多人管理时,大家都要使用su切换成root身份,那么大家就都知道root密码了,这样不太好。所以,最好使用sudo.

18.sudo的执行仅仅输入自己的密码就行了。仅有/etc/sudoers内的用户才能执行sudo这个命令。

    例如:以sshd的身份在/tmp下面新建一个名为mysshd的文件:  sudo -u sshd touch /tmp/mysshd

19./etc/sudoers应该用visudo来修改,直接在root下输入visudo即可进入。具体修改详见(P430)。

20.用户的特殊shell与PAM模块没有看,P433.

21.如果想知道目前已登录在系统上的用户,可以输入  w  或者  who来查看。

  另外,若想知道每个帐号的最近登录时间,则可以使用lastlog命令。

22.用户对谈命令:write,mesg,wall。

    例如;我们的Linux上目前有wjy和yhw两人在线,wjy想和yhw说话可以这样:who(查询yhw所在的终端接口),然后执行  write yhw pts/i(查到的接口号),接着输入想说的话     就行了。而yhw会立即接受到消息。但是这样会打断yhw当前的工作。所以可以通过mesg n或者mesg y来设定是否接收消息。使用mesg查看当前的mesg设置。(但是,mesg的     功能对root传来的信息没有抵抗能力)。

    wall “消息们”:可以广播给其他在线用户。

23.用户邮件的使用:mail.

    mail 用户名 -s “标题”输入回车后,就可以输入信件内容了。结束时,最后一行输入一个小数点。

    例如:将主文件夹下的环境变量文件寄给自己:  mail -s "bashrc file content" wjy<~/.bashrc

24.手动新增用户(批量新建,检查工具等)没看。P443

U14Linux的帐号与用户组的更多相关文章

  1. 给Linux添加新用户,新建用户,新建帐号

    给Linux添加新用户,新建用户,新建帐号 添加用户组 sudo groupadd groupname 添加用户 sudo useradd username -m -s /sbin/nologin - ...

  2. Linux学习笔记---用户管理---帐号管理

    root管理 (1)新增用户:useradd -u 指定UID -g 指定GID -G 作为组员添加到某个组 -M 不创建主用户目录 -m 创建主用户目录 -c 用户信息说明列 -d 指定某个目录为主 ...

  3. Linux 下WordPress FTP帐号解决办法

    自己用Ubuntu搭建WordPress后在更换主题时提示需要输入FTP帐号和密码,解决办法主要是把WordPress主目录的权限所有者弄为Apache: 找到apache服务所使用的用户名和用户组 ...

  4. Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38705965,专题目录:http://blog.csdn.net/dba_huangzj ...

  5. ubuntu用户帐号

    与用户帐号相关的有几个非常重要的文件/ect/passwd,/etc/shadow,/etc/group /etc/passwd 执行 head -n 5 /ect/passwd显示前5行,内容如下: ...

  6. 树莓派修改默认pi帐号亲测有效

    # 树莓派修改默认pi帐号亲测有效### 1.我的树莓派机型:3B+,系统:Raspbian桌面标准版,连接的屏幕:电视机..###2.打开树莓派LX终端,快捷键:Ctrl+Alt+t ###3.输入 ...

  7. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  8. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索

    SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...

  9. SQLSERVER走起微信公众帐号全新改版 全新首页

    SQLSERVER走起微信公众帐号全新改版 全新首页 今天,SQLSERVER走起微信公众帐号增加了首页功能 虽然还是订阅号,不过已经对版面做了比较大的修改,希望各位亲用得放心.用得安心O(∩_∩)O ...

随机推荐

  1. Boost Thread学习笔记三

    下面先对condition_impl进行简要分析.condition_impl在其构造函数中会创建两个Semaphore(信号量):m_gate.m_queue,及一个Mutex(互斥体,跟boost ...

  2. clear_logs.py修改

    #!/usr/bin/env python#encoding=utf-8"""清空最后修改时间跑今天7天以前的所有文件"""#指定监控的路径 ...

  3. cocos2d-x学习日志(10) --射击游戏(喵星战争)

    转载请标明:转载自[小枫栏目],博文链接:http://blog.csdn.net/rexuefengye/article/details/10553487 一.纵版射击游戏的特点 纵版射击游戏是一种 ...

  4. 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize

    矩阵和图像的操作 (1)cvMinManLoc函数 其结构 void cvMinMaxLoc(//取出矩阵中最大最小值 const CvArr* arr,//目标矩阵 double* min_val, ...

  5. HP-UX查看版本

    首先采用uname -a查看服务器类型 $ uname -a    HP-UX WEBDB1 B.11.31 U ia64 0749665296 unlimited-user license 服务器的 ...

  6. hdu 4715 Difference Between Primes 2013年ICPC热身赛A题 素数水题

    题意:给出一个偶数(不论正负),求出两个素数a,b,能够满足 a-b=x,素数在1e6以内. 只要用筛选法打出素数表,枚举查询下就行了. 我用set储存素数,然后遍历set里面的元素,查询+x后是否还 ...

  7. Android installed app, never used, cannot receiver BroadcastReceiver

    官方文档是这么写的:(http://developer.android.com/about/versions/android-3.1.html#launchcontrols) Launch contr ...

  8. boost 的函数式编程库 Phoenix入门学习

    这篇文章是我学习boost phoenix的总结. 序言 Phoenix是一个C++的函数式编程(function programming)库.Phoenix的函数式编程是构建在函数对象上的.因此,了 ...

  9. 论javascript模块化的优缺

    如今backbone.emberjs.spinejs.batmanjs 等MVC框架侵袭而来.CommonJS.AMD.NodeJS.RequireJS.SeaJS.curljs等模块化的JavaSc ...

  10. Mybatis+Struts2的结合:实现用户插入和查找

    总结一下今天一个成功的小实验:Mybatis+Struts2的结合:实现用户插入和查找.删除和修改如果以后写了,会继续更新. 一 准备工作. 1.新建一个java web项目. 2.在webConte ...