Mondo Rescue 安裝

repository unsigned for apt-get

  1. wget http://www.mondorescue.org/ftp/ubuntu/16.04/mondorescue.sources.list
  2. wget ftp://ftp.mondorescue.org/ubuntu/16.04/mondorescue.pubkey
  3. sudo apt-key add mondorescue.pubkey
  4. sudo apt-get update
  5. sudo apt-get upgrade
  6. apt-get install mondo

添加用户/设置root权限

创建用户

adduser

  1. adduser xxxx

useradd

  1. sudo useradd username -m -s /bin/bash -d /home/username -g groupname
  2. -s /sbin/nologin 设置不能登陆 -s /bin/false(老方法) 也行
  3. -d 设置用户主目录
  4. -g 用户组
  5. -m 创建用户目录

更改用户登录权限

在增加了-s /sbin/nologin 参数后,那么这个帐号就不能登陆了,如果想要恢复登陆使用

  1. #恢复登陆
  2. sudo usermod -s /bin/bash username
  3. #禁用用户登录权限
  4. sudo usermod -s /sbin/nologin username

删除用户

  1. sudo userdel username

linux给用户添加sudo权限:

有时候,linux下面运行sudo命令,会提示类似:
xxxis not in the sudoers file. This incident will be reported.
这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决:

  1. 进入超级用户模式。也就是输入” su -“,系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
  2. 添加文件的写权限。也就是输入命令” “。

    1. chmod u+w /etc/sudoers
  3. 编辑/etc/sudoers文件。也就是输入命令” vim /etc/sudoers”,进入编辑模式,找到这一 行:” root ALL=(ALL) ALL”在起下面添加” xxx ALL=(ALL) ALL”(这里的xxx是你的用户名),然后保存退出。

  4. 撤销文件的写权限。也就是输入命令
    1. chmod u-w /etc/sudoers

扩展

useradd与adduser的区别

1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
2、adduser在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。

批量生成用户

每一列按照/etc/passwd密码文件的格式书写,要注意每个用户的用户名、UID、宿主目录都不可以相同,其中密码栏可以留做空白或输入x号。一个范例文件user.txt内容如下:

  1. user001::600:100:user:/home/user001:/bin/bash
  2. user002::601:100:user:/home/user002:/bin/bash
  3. user003::602:100:user:/home/user003:/bin/bash
  4. user004::603:100:user:/home/user004:/bin/bash
  5. user005::604:100:user:/home/user005:/bin/bash
  6. user006::605:100:user:/home/user006:/bin/bash

以root身以root身份执行/usr/sbin/newusers,从刚创建的用户文件user.txt中导入数据,创建用户:

  1. newusers < user.txt

然后可以执行命令vipw 或 vi /etc/passwd 检查 /etc/passwd 文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建。

执行命令/usr/sbin/pwunconv

将 /etc/shadow 产生的 shadow 密码解码,然后回写到 /etc/passwd 中,并将/etc/shadow的shadow密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password 功能。

  1. pwunconv

编辑每个用户的密码对照文件

  1. user001:密码
  2. user002:密码
  3. user003:密码
  4. user004:密码
  5. user005:密码
  6. user006:密码

以root身份执行命令 /usr/sbin/chpasswd

创建用户密码,chpasswd 会将经过 /usr/bin/passwd 命令编码过的密码写入 /etc/passwd 的密码栏。

  1. chpasswd < passwd.txt

确定密码经编码写入/etc/passwd的密码栏后

执行命令 /usr/sbin/pwconv 将密码编码为 shadow password,并将结果写入 /etc/shadow。

  1. pwconv

限制用户可以创建最大的文件大小

配置

  1. vim /etc/security/limits.conf
  2. 用户名 soft fsize 90000 #这是软限制,单位是KB
  3. 用户名 hard fsize 102400 #这是硬限制,单位是KB
  4. * soft noproc 11000
  5. * hard noproc 11000
  6. * soft nofile 4100
  7. * hard nofile 4100
  8. 说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数

测试

生成一个20G的file 文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)

  1. dd if=/dev/zero of=file bs=1M count=20000

产生一个大文件的数据,但是并不需要占用磁盘空间

  1. dd if=/dev/zero of=file bs=1M count=0 seek=20000

扩展

ulimit

limited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)
和可同时运行的最大进程数(max user processes)无效
-a 列出所有当前资源极限
-c 设置core文件的最大值.单位:blocks
-d 设置一个进程的数据段的最大值.单位:kbytes
-f Shell 创建文件的文件大小的最大值,单位:blocks
-h 指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限
-l 可以锁住的物理内存的最大值
-m 可以使用的常驻内存的最大值,单位:kbytes
-n 每个进程可以同时打开的最大文件数
-p 设置管道的最大值,单位为block,1block=512bytes
-s 指定堆栈的最大值:单位:kbytes
-S 指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果 -H 和 -S 标志均未指定,极限适用于以上二者
-t 指定每个进程所使用的秒数,单位:seconds
-u 可以运行的最大并发进程数
-v Shell可使用的最大的虚拟内存,单位:kbytes

输出的每一行由资源名字、(单位,ulimit命令的参数)、软限制组成。详细解释:

  1. 参数 描述
  2. core file size core 文件的最大值为100 blocks
  3. data seg size 进程的数据段可以任意大
  4. file size 文件可以任意大
  5. pending signals 最多有2047个待处理的信号
  6. max locked memory 一个任务锁住的物理内存的最大值为32kB
  7. max memory size 一个任务的常驻物理内存的最大值
  8. open files 一个任务最多可以同时打开1024的文件
  9. pipe size 管道的最大空间为4096字节
  10. POSIX message queues POSIX的消息队列的最大值为819200字节
  11. stack size 进程的栈的最大值为8192字节
  12. cpu time 进程使用的CPU时间
  13. max user processes 当前用户同时打开的进程(包括线程)的最大个数为2047
  14. virtual memory 没有限制进程的最大地址空间
  15. file locks 所能锁住的文件的最大个数没有限制

[

](https://blog.csdn.net/qq_43688472/article/details/102371441)