Linux操作系统—用户和权限管理基础知识

1.  用户概述: 

   - 在Linux系统中,每个用户都有一个唯一的用户标识号(UID)。

   - 用户信息存储在`/etc/passwd`文件中,包括用户名、UID、登录Shell等信息。

2.  用户创建和管理: 

   - `adduser`或`useradd`命令用于创建新用户。

   - `passwd`命令用于设置用户密码。

   - `usermod`命令用于修改用户属性。

   - `userdel`命令用于删除用户。

     # 示例:创建新用户   

sudo useradd -m -s /bin/bash newuser

   sudo passwd newuser

3.  用户组: 

   - 用户可以属于一个或多个用户组。

   - 用户组信息存储在`/etc/group`文件中。

4.  权限基础: 

   - 文件和目录有三种基本权限:读(r)、写(w)、执行(x)。

   - 权限分为用户(owner)、组(group)、其他用户(others)。

  1.  权限示例: 

# 示例:更改文件权限

   chmod u+rwx file   # 用户具有读、写、执行权限

   chmod g+rw file    # 组具有读、写权限

   chmod o-rwx file   # 其他用户无权限

  6.  文件所有者和所属组更改: 

   - `chown`命令用于更改文件所有者。

   - `chgrp`命令用于更改文件所属组。

     # 示例:更改文件所有者和所属组

   sudo chown user:group file

  7.  权限继承和递归: 

   - `-R`选项可用于递归地应用权限更改。

   - 新创建的文件默认继承父目录的权限。

     # 示例:递归更改目录权限

   sudo chmod -R 755 directory

  8.  特殊权限位: 

   - `setuid`(`s`):以文件所有者的身份执行文件。

   - `setgid`(`s`):以文件所属组的身份执行文件。

   - `sticky`(`t`):防止其他用户删除非自己的文件。

     # 示例:设置setuid权限

   chmod u+s executable_file

  9.  sudo权限管理: 

   - `sudo`命令允许普通用户以超级用户的身份执行命令。

   - `visudo`命令用于编辑sudoers文件,配置用户的sudo权限。

     # 示例:添加用户到sudo组

   sudo usermod -aG sudo username

  10.  用户登录和切换: 

   - `su`命令用于切换用户。

   - `sudo -u`命令用于以其他用户身份执行命令。

     # 示例:切换用户

  su - username

  11.  SSH密钥认证: 

   - 使用SSH密钥对实现安全的远程登录。

   - `ssh-keygen`命令用于生成SSH密钥对。

     # 示例:生成SSH密钥对

ssh-keygen -t rsa -b 4096

 12. PAM(Pluggable Authentication Modules):

   - PAM提供了可插拔的认证模块,用于定制用户认证过程。

   - 配置文件位于`/etc/pam.d/`目录下。

13. 限制用户权限:

   - 使用`sudo`配置文件限制用户能够执行的特定命令。

   - 使用`ulimit`命令限制用户进程的资源使用。

   # 示例:限制用户能够执行的命令

username ALL=(ALL:ALL) /path/to/command

14.  ACL(Access Control Lists): 

   - ACL提供了更细粒度的权限控制,可以赋予用户或组额外的权限。

   # 示例:设置ACL权限

setfacl -m u:username:rw file

15. 监控和审计:

   - 使用系统日志(`/var/log/auth.log`等)监控用户登录和权限更改。

   - 定期审计系统日志以检测潜在的安全问题。

16. 限制用户登录:

   - 使用`/etc/security/access.conf`文件可以限制用户从特定的终端登录。

    # 示例:限制用户登录

    +: username : ALL

17. SSH配置:

   - 修改SSH配置文件(通常为`/etc/ssh/sshd_config`)以加强安全性,例如禁用root登录、限制用户登录等。

    # 示例:禁用root登录

    PermitRootLogin no

18. 用户密码策略:

   - 通过`/etc/security/pwquality.conf`等文件配置密码策略,包括密码长度、复杂性等。

    # 示例:配置密码策略

    minlen = 8

    minclass = 3

19. 禁止非必要服务:

   - 禁止或关闭系统上不必要的服务,以减少攻击面。

    # 示例:停止并禁用不必要的服务    

sudo systemctl stop servicename

sudo systemctl disable servicename

 20. 定期更改密码:

   - 通过设置密码到期时间,强制用户定期更改密码。

    # 示例:设置密码到期时间

sudo chage -M 30 username

21. SSH密钥认证:

   - 使用SSH密钥认证时,确保私钥文件权限受限。

    # 示例:私钥文件权限

chmod 600 ~/.ssh/id_rsa

 22. 查看用户登录历史:

   - 使用`last`命令查看用户登录历史。

    # 示例:查看用户登录历史

last username

 23. PAM配置:

   - 通过修改PAM配置文件,可以实现更灵活的用户认证和会话管理。

    # 示例:修改PAM配置

sudo nano /etc/pam.d/sshd

24. ACL权限:

   - 使用`getfacl`和`setfacl`命令查看和设置ACL权限。

    # 示例:查看ACL权限

getfacl filename

    # 示例:设置ACL权限

setfacl -m u:username:rw filename

25. SELinux(Security-Enhanced Linux):

   - 针对更高级的安全需求,使用SELinux来强化系统安全性。

    # 示例:查看SELinux状态

sestatus

26. 使用`visudo`编辑sudoers文件:

   - 使用`visudo`命令来编辑sudoers文件,以确保语法正确性。

    # 示例:使用visudo编辑sudoers文件

sudo visudo

 27. 监控登录失败:

   - 使用`/var/log/secure`等系统日志文件监控登录失败的尝试。

    # 示例:查看登录失败日志

grep "Failed password" /var/log/secure

28. 文件系统权限:

   - 确保文件系统的权限正确设置,以防止未授权访问。

    # 示例:设置文件系统权限

sudo chmod 755 directory

 29. 加密文件传输:

   - 使用加密协议如SSH、SFTP等,以确保文件传输的安全性。

    # 示例:使用SFTP传输文件

sftp username@hostname

30. 使用`fail2ban`:

   - 安装和配置`fail2ban`来自动封锁频繁登录失败的IP地址。

    # 示例:安装fail2ban

sudo apt-get install fail2ban

你可能感兴趣的:(Linux,服务器,linux,数据库,网络)