Linux学习笔记之 7 Linux用户账号管理

1 管理员账号
  • 设置root账号的密码  #passwd
  • 变换身份为管理员   #su -
  • 只允许root登录#touch /etc/nologin
  • 单人模式 编辑/etc/inittab 或single。忘记root密码 在单人模式#passwd -droot
2 创建用户账号
    添加用户
        #useradd 用户名
        #passwd 用户名

    增加用户对环境的修改
  • # vi /etc/passwd 增加一条
        用户名:密码:UID:GID:用户全名:用户HOME目录:用户的SHELL
        例:zhy  :     :  500 :  500 :  zhy  user:/home/zhy      :   /bin/bash
  • 在/HOME/下增加一个以用户名命名的目录。
  • #vi /etc/group 增加一条以用户名命名的组。
3 两个重要文件:passwd与group 
    在linux的安全机制里,/etc/passwd与/etc/group这两个文件占着非常重要的地位。它们控制着linux的用户和组一些重要设置。 
    /etc/passwd文件说明 
    在passwd的文件里,每一行被冒号(":")分成7个部分,分别是: [用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell] 
  1. [用户名]是passwd文件里各记录行唯一的有"唯一性"要求的域。也就是说每一行的第一个区域的内容都不能相同,其它区域就无所谓了。 
  2. [密码] 现在由于使用了shadow口令,在密码区域只有一个x字符。  
  3. [UID]系统使用UID来判别用户身份
  4. [GID]用户默认的组ID,这个ID可以在文件 /etc/group里查到对应 的组名。 
  5. [身份描述]:就是用户的身份说明,默认的是无任何说明,可人工添加。 
  6. [主目录]:用户的主目录,可以使用前面介绍的命令修改。 
  7. [登录shell]:用户登录时系统提供的shell,请参考前面的有关内容。 
    <注意>:[UID]和[GID]小于500的一般都是系统自己保留,不做普通用户和组的标识的,所以新增加的用户和组一般都是UID和GID大于500的

    /etc/group文件说明 
    它总共分四个部分: [组名]:[密码域]:[GID]:[组员列表] 

4 创建用户账号
    Shadow文件内容格式
    每个账号在shadow文件中都有9个字段,分别用8个冒号(:)隔开
    字段说明:
  • 用户名:这是用户登录系统时使用的用户名,它在系统中是惟一的
  • 口令:此字段存放加密的口令
  • 最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
  • 最小时间间隔:两次修改口令之间的最小天数
  • 最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
  • 警告时间:从系统开始警告到口令正式失效的天数
  • 不活动时间:口令过期多少天后,该账号被禁用
  • 失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
  • 标志:未使用
【删除用户:】
 #userdel 用户名

【查封用户:】
 #vi /etc/passwd 用分号注释掉用户记录。
    <注意>:在前面加上#号

【建立用户组】
#groupadd 组名

【删除用户组】
# groupdel  组名

【将用户加入到组和从组中删除】
# gpasswd –a 用户名  组名        //添加用户
# gpasswd –d 用户名  组名        //删除用户

【查看用户属于某组】
#groups  用户名

【新建用户加入某组】
# useradd –g  某组名  用户

【更改用户主目录:】
useradd的参数-d,命令如下: 
#useradd -d  主目录 用户 
#useradd -d  /home/goal floatboat 

【添加用户到有的组 :】
#useradd -g  用户组 用户 
#useradd -g  webusers floatboat 

注:加参数-G可将用户加入多个组

5 磁盘空间管理概述
在Linux系统中,可以通过quota的设置来
限制用户和用户组的硬盘空间配额。而磁
盘配额技术在Linux操作系统的应用中是十
分广泛的。
例如:各个网站、ICP等为用户设置信箱大
小、磁盘使用空间、虚拟主机等都用到了磁
盘配额技术。 

5.1 磁盘空间管理
    在Linux系统中,可以通过quota的设置来限制用户和用户组的硬盘空间配额。而磁盘配额技术在Linux操作系统的应用中是十分广泛的。
    例如:各个网站、ICP等为用户设置信箱大小、磁盘使用空间、虚拟主机等都用到了磁盘配额技术。 

    在根分区做配额:
     首先
    修改/etc/fstab文件: LABEL=/     /      ext3    defaults      1 1 
    改为: LABEL=/     /      ext3    defaults,usrquota      1 1 
    或者改为: LABEL=/     /      ext3    defaults,grpquota      1 1
    usrquota是基于用户的磁盘配额,grpquota是基于组的磁盘配额,怎么改就看你需要了。 之后你或者重新启动一下,或者remount一下(mount -o remount / )。 

     第二,在 / 中建立aquota.user或aquota.grup
    建立在你要实现配额的顶级目录。所谓定级目录,就是比如你要在 / 上实现配额,就要在 / 下建立aquota.user或者aquota.grup;如果你要在/home上实现配额(当然你的/home应该是一个独立的磁盘分区),就在/home下建立这两个文件中的一个。
    用touch命令建立,touch aquota.user或aquota.srup。但这时建立好的文件是空的,不符和系统的需要。所以执行下一步。 

     第三,用quotacheck -mc /  将这两个文件(aquota.user或aquota.grup)格式化。
    注意一下,除非是/分区,一般不用加-m参数,比如你要在/home上实现配额(当然你的/home应该是一个独立的磁盘分区)就:quotacheck -c /home  就可以了。 -m的意思是强迫在“读、写”模式下检查硬盘的配额。 
    执行“quotacheck -avug”命令
    quotacheck这个命令的功能就是对“已经使用过的磁盘空间”做扫描,分析已使用磁盘上的每一个目录和文件属于哪一个用户和组,然后分别在根目录/(root)产生“userquota”和“grpquota”这两种记录文件。其中命令中参数组合“-avug”中各个参数的含义如下所示:
  • -a参数:表示扫描全部的磁盘 
  • -v参数:表示在扫描(scan)磁盘时,显示扫描过程的信息
  • -u参数:表示扫描记录磁盘上各个用户(User)的使用的文件和目录 
  • -g参数:表示扫描记录磁盘上各个用户组(Group)的使用的文件和目录 
     第四,quotaon /        
    启动磁盘配额。 
    
     第五,edquota 用户名/组名       
    设置用户/组的配额 例如:edquota user_name      edquota -g group_name (对于用户组)  
    执行后会打开一个vi编辑窗口。可以设置磁盘空间和节点数目的配额。其中soft只是起到警告的作用,并不会真正的限制用户/组。hard就会强制限制用户/组的磁盘空间和节点数目了。 

    为用户或用户组设置磁盘配额限制。假设在你的系统上有一名为bob 的用户,现在想给他10MB的硬盘配额限制,他所拥有的最大文件数不得超过100个。执行edquota -u dquo,系统将进入编辑环境(具体编辑环境视editor变量设置而定),将如下三行: 
  Quotas for user bob: 
  /dev/hda2: blocks in use: 14, limits (soft=0, hard=0) 
  inodes in use: 12, limits (soft=0, hard=0) 
  
    改为: 
  Quotas for user bob: 
  /dev/hda2: blocks in use: 14, limits (soft=0, hard=10240) 
  inodes in use: 12, limits (soft=0, hard=100) 
 
 其中: 
  blocks in use:用户已使用块的大小,单位是kB。 
  inodes in use:用户现有文件的大小。 
  这两项都是系统自动给出,不必改动。 

软限制(soft limits) 
    通常设置软限制为一接近硬限制的值,超越此限制时,系统将警告用户将到达最大磁盘配额限制。软限制为0 时没有软限制。结合宽限期使用时,只要用户超越了软限制,一过宽限期,任何对磁盘空间的额外需求将被立即拒绝。 

硬限制(hard limits) 
    磁盘配额的绝对限制,设置了quota的用户不能超越此限制。 

宽限期(Grace Period) 
    用户超越了软限制而没有到达硬限制时的一段放宽期,在这段时间内,用户可以在硬限制范围内自由地使用磁盘空间,超过这段时间,所有对磁盘空间的额外需求将被拒绝,即使用户还在硬限制之内。宽限期的单位可以是秒、分、时、天。执行edquota -t命令设置宽限期。执行该命令后,将系统提示中的两个0 days 改成你认为合适的值即可。 

    第六,设定soft quota和hard quota之间的时间:
    edquota -t 出现一个 vi 窗口: Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hda7 7days 7days 按照自己的需要修改吧。重新启动就可以了。磁盘限额就生效了。 

     第七,如果要成批的复制相同的磁盘配额给不通用户:
    edquota -p user user1 user2 user3 edquota -g -p group group1 group2 group3
    repquota –ag -au 查看所有组及用户的磁盘限制

     第八,取消磁盘限额:
    quotaoff / 

5.2 磁盘空间管理命令
    df命令 
    功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 
    语法:df [选项] 
    说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。 该命令各个选项的含义如下: 
  • -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。 
  • -k 以k字节为单位显示。 
  • -i 显示i节点信息,而不是磁盘块。 
  • -t 显示各指定类型的文件系统的磁盘空间使用情况。 
  • -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。 
  • -T 显示文件系统类型。 
  例1:列出各文件系统的磁盘空间使用情况。 
  $ df 

    df命令的输出清单:
  • 第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区)
  • 第2列给出分区包含的数据块(1024字节)的数目;
  • 第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的安装点。 

    du命令 
    du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。 
    功能:统计目录(或文件)所占磁盘空间的大小。 
    语法:du [选项] [Names…] 
    说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。该命令的各个选项含义如下: 
  • -s:对每个Names参数只给出占用的数据块总数。 
  • -a:递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。 
  • -b:以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。 
  • -k:以1024字节为单位列出磁盘空间使用情况。 
  • -c:最后再加上一个总计(系统缺省设置)。 
  • -l:计算所有的文件大小,对硬链接文件,则计算多次。 
  • X:跳过在不同文件系统上的目录不予统计。 

    du命令的输出清单:
  • 第一列是以块为单位计的磁盘空间容量,
  • 第二列列出目录中使用这些空间的目录名称。 注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止。这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数: 
5.3 磁盘操作 
    dd命令 
    功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过   程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。 
 
    例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令: 
    $ dd if =/dev/fd0 of = /tmp/tmpfile 

     语法:dd [选项] 
  if =输入文件(或设备名称)。 
  of =输出文件(或设备名称)。 
  ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。 
  skip = blocks 跳过读入缓冲区开头的ibs*blocks块。 
  obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。 
  bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。 
  cbs = byte 一次转换bytes字节。 
  count=blocks 只拷贝输入的blocks块。 
  conv = ASCII 把EBCDIC码转换为ASCIl码。 
  conv = ebcdic 把ASCIl码转换为EBCDIC码。 
  conv = ibm 把ASCIl码转换为alternate EBCDIC码。 
  conv = block 把变动位转换成固定字符。 
  conv = ublock 把固定位转换成变动位。 
  conv = ucase 把字母由小写转换为大写。 
  conv = lcase 把字母由大写转换为小写。 
  conv = notrunc 不截短输出文件。 
  conv = swab 交换每一对输入字节。 
  conv = noerror 出错时不停止处理。 
  conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。 



你可能感兴趣的:(数据,技术,格式化,虚拟主机,系统管理员)