ubuntu用户管理与权限操作实例

昨天在转载此文时提到都要把文件及目录权限的操作也会独立成文来给大家介绍,今天特地学习了用户管理和权限操作的例程,现总结如下。这些命令基本都是我在自己电脑上运行过后能够实现此功能,我才把他们加进来,希望对大家有所帮助,也希望和大家多交流^_^

一个实例

例子:假设有两个用户bill和jane,他们都有音乐CD集,并要创建一个共享目录,在该目录下他们各自存储自己的音乐文件。此时用户bill通过sudo获得了超级用户权限。

  • 首先,创建一个以bill和jane为成员的用户组。

    sudo addgroup music
    sudo useradd -g music jane
    sudo useradd -g music bill
    
  • 然后,bill创建了存储音乐文件的目录。

    sudo mkdir /usr/local/share/music
    

    因为bill正在操作他主目录之外的文件,所以他需要超级用户权限,新创建的目录如下:

    ls -ld /usr/local/share/music
    drwxr-xr-x 2 root root 4096 Jun 22 12:10 /usr/local/share/music
    
  • 这个主目录为root所有,且权限值为755,要使该目录共享,bill需要更改该目录的所属群组,而且该群组要拥有写入权限。

    sudo chown :music /usr/local/share/music
    sudo chmod 775 /usr/local/share/music
    ls -ld /usr/local/share/music
    drwxrwxr-x 2 root music 4096 Jun 22 12:10 /usr/local/share/music
    

    所以目前music群组就拥有了对music目录的读写权限,music的成员bill和jane也具有相同的权限,其他用户可以查看该目录,而不能修改该目录。

  • 修改默认掩码:仍然有一个问题,在当前权限下,每个用户创建的文件和目录拥有bill和jane的常规权限;

    touch 12;ls -l
    -rw-r--r-- 1 bill music 0 Jun 22 12:20 12
    

    由于系统中默认掩码是0022,导致该用户组的其他成员不能写入该文件,所以需要把bill和jane的默认掩码值修改为0002。

    drwxrwxr-x 2 bill music 4096 Jun 22 12:25 bill
    drwxrwxr-x 2 jane music 4096 Jun 22 12:24 jane
    

    此时创建的文件和目录都具有正确的权限,允许用户组内成员在music目录下创建文件和目录。

linux文件/目录模式(权限)与用户管理

传统的UNIX操作系统与传统的MS-DOS操作系统的不同之处在于它不仅是多重任务处理系统,而且是多用户系统。意味着同一时间内可以有多个用户使用同一台计算机。

linux文件/目录模式管理

  • chomod文件模式(权限):只有超级用户和文件所有者才可以更改权限。chmod支持八进制和字符表示法两种方法来改变文件模式。

    rwx(0|1)(0|1)(0|1)读 写 执行

    chmod支持一种符号表示法来指定文件模式,该符号表示法分为三部分:更改会影响谁、要执行哪个操作、要设置哪种权限。可以通过u(user,文件目录所有者)、g(group文件所用户组)、o(others,其他用户)、a(all所有)的组合来制定要影响的对象,如果没有指定,则默认使用all。操作符+表示添加一种权限,-表示删除一种权限,=表示只有指定权限可用,其他权限都被删除。
    指定多种权限时,需用逗号分隔:u+x,go=rx。符号表示法的优点在于允许设置单个属性,而不影响其他的任何属性。

  • umask——设置默认权限:umask命令控制着创建文件时指定给文件的默认权限,它用八进制表示法表示从该文件模式属性中删除一个位掩码。总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,对于新创建的目录,其默认模式为~umask&(0777),对于新创建的文件则是~umask&(0666)。例如umask=0002,则创建目录的默认模式为0775,创建文件默认模式为0664。掩码的二进制数值中每个出现1的位置,其对应属性就被取消。
    root 的 umask 为 0022,而一般使用者则为 0002 ,因为可写的权限蛮严重的,因此预设都会拿掉这个权限!此外,因为 root 比较重要!所以为了安全的需求,其同群组的写入属性就被拿掉了!这东西对于安全性也有一定程度的贡献呦!

linux用户管理

赋予普通身份特殊权限

su—以其他用户和组ID的身份来运行shell:su [-[l]] [user],-l显示登陆界面,可缩写为-。也可以使用su命令执行单个命令,而不需要开启一个新的交互式命令界面:su –c ‘command’,注意命令需要用单引号括起来。(在ubuntu 14.04中要使用该功能,就需要首先在root权限下设置root密码:passwd root,然后才能使用su命令)。
sudo—以另一个用户的身份执行命令:和su功能类似,但是sudo命令并不需要输入超级用户密码。使用sudo命令,用户只需要输入自己的密码来进行认证。并且仅能执行预设的权限。
sudo工具由文件/etc/sudoers进行配置,该文件包含所有可以访问sudo工具的用户列表并定义了他们的特权。

liming ALL=(ALL) ALL
ADMINS ALL=(ALL) NOPASSWD: ALL  表示允许ADMINS不用口令执行一切操作

管理员需要允许gem用户在主机sun上执行reboot和shutdown命令,在/etc/sudoers中加入:

gem sun=/usr/sbin/reboot,/usr/sbin/shutdown
sudo –l会显示当前用户在sudo模式下可以执行的权限。

chown—更改文件所有者和所用户组,这个命令需要超级用户权限:

chown [ower][:[group]] file…

该命令更改的是文件所有者还是文件所用户组,取决于该命令的第一个参数。

chown bob file  把文件所有者从当前所有者更改为用户bob
chown bob:users file 把文件所有者更改为bob,所用户组更改为users
chown :admins file  把文件所用户组改为admins
chown bob: file  把文件所有者更改为用户bob,所用户组改为用户bob登录时的所属的组

添加用户的方法

adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID][--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID][--disabled-password] [--disabled-login] [--encrypt-home] USER添加普通用户(sudo adduser mountzf)

注意这里有很多选项,可直接将用户加入用户组

adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID][--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] USER添加系统用户useradd [options] LOGIN,有很多选项,可实现密码、根目录、用户组等

添加用户组的方法

adduser --group [--gid ID] GROUP(sudo adduser --group media)
addgroup [--gid ID] GROUP (sudo addgroup document)
addgroup --system [--gid ID] GROUP加入—system选项表示添加系统用户组
groupadd [options] GROUP(sudo groupadd music)
groupmod修改用户组属性

添加用户至用户组

adduser USER GROUP(sudo adduser mountzf music)添加已存在的用户至已存在的用户组
usermod –G/-g GROUP USER(usermod命令用来改变用户账号状态)

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:newgrp root

删除用户

deluser USER--remove-home             remove the users home directory and mail spool--remove-all-files        remove all files owned by user--backup                  backup files before removing.--backup-to <DIR>         target directory for the backups. Default is the current directory.--system                  only remove if system useruserdel [options] LOGIN-f, --force                   force removal of files, even if not owned by user-h, --help                    display this help message and exit-r, --remove                  remove home directory and mail spool-R, --root CHROOT_DIR         directory to chroot into-Z, --selinux-user            remove any SELinux user mapping for the user
kill -9 [pid]删除进程号为[pid]的进程。

删除用户组

delgroup GROUP
deluser --group GROUP--system                  only remove if system group--only-if-empty           only remove if no members left
groupdel [options] GROUP

从用户组中删除用户

deluser USER GROUP(sudo deluser mountzf music)但是不能从主用户组中移除

查看用户组

cat /etc/group   music:x:1001:mountzf,jane同时可以显示该用户组中的用户成员(不包括以该组为主组的成员)
groups 查看当前用户所属的用户组,当前用户组排在最前面
groups user 查看用户user所属的用户组

查看用户

id/whoami查看当前用户
w/who查看当前登录的用户
cat /etc/passwd查看所有用户列表

增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。

用户口令管理

passwd:超级用户可以为自己和普通用户指定口令,而普通用户只能修改自己口令。
passwd修改自己的口令
passwd user超级用户修改user的口令-l 锁定口令,即禁用账号。-u 口令解锁。-d 使账号无口令。-f 强迫用户下次登录时修改口令。

与用户管理有关的文件

完成用户管理的工作有多种方法,但是每一种方法实际上都是对有关的系统文件进行修改,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。

/etc/passwd

/etc/passwd文件是用户管理工作涉及的最重要的一个文件,/etc/passwd中一行记录对应着一个用户,其格式和具体含义如下:

mountzf:x:1000:1000:mountzf,,,:/home/mountzf:/bin/bash
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

系统中有一类用户称为伪用户(psuedo users),这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

/etc/shadow

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。

/etc/group

用户组的所有信息都存放在/etc/group文件中。

以上就是我这两天在ubuntu系统中学习用户管理和文件/目录权限操作所涉及的内容。

祝枫
2016年6月22日于深圳

ubuntu用户管理与权限操作实例相关推荐

  1. linux 774是什么权限,7.6 Linux用户与文件权限操作实例

    <7.6 Linux用户与文件权限操作实例>由会员分享,可在线阅读,更多相关<7.6 Linux用户与文件权限操作实例(15页珍藏版)>请在人人文库网上搜索. 1.Linux用 ...

  2. Ubuntu/Linux用户管理与权限管理(超详细解析)

    由于实验室几个老师的学生要共同使用一台服务器,所以需要规范一下服务器的使用,并且给各位学生配置相关的用户和权限,之前一直都是自己用,所以借此机会学习和总结一下Linux服务器的用户管理与权限管理. U ...

  3. Linux之用户管理、权限管理、程序安装卸载

    一. 用户管理 1. 查看账户 (1). 查看当前账号:whoami ​(2). 查看系统当前登录的账号:who ​补充常用选项: ​(3). 查看系统所有的账号: cat /etc/passwd ​ ...

  4. MySQL学习笔记07【事务、用户管理和权限管理】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  5. MySQL用户管理和权限管理

    MySQL用户管理和权限管理 在项目中,一个数据库有很多人需要使用,不能所有的人都使用相同的权限,如果人比较多,一人一个用户也很难管理.一般来说,会分超级管理员权限,管理员权限,读写权限,只读权限等, ...

  6. Eclipse Che的用户管理和权限

    Eclipse Che的用户管理和权限 基础 认证(Authentication)与授权(Authorization) 鉴权的过程是向用户发起质询(Challenge),完成身份验证工作. 令牌:令牌 ...

  7. 智能家居助手后台系统原型/智慧家居后台管理系统/应用分析/页面分析/设备分析/用户管理/运营管理/权限管理/系统设置/问题反馈/商城管理/消息管理/用户画像/公告管理/账号画像/留存用户/数据埋点

    作品介绍:智能家居助手后台系统原型/智慧家居后台管理系统/应用分析/页面分析/设备分析/用户管理/运营管理/权限管理/系统设置/问题反馈/商城管理/消息管理/用户画像/公告管理/账号画像/留存用户/数 ...

  8. RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置

    1. 服务器管理 我们使用 "节点" 来指代 RabbitMQ 实例,当我们谈到 RabbitMQ 节点时指的是 RabbitMQ 应用程序和其所在的 Erlang 节点. 1.1 ...

  9. Ubuntu用户管理原理

    Ubuntu账户: Ubuntu有三类账户:超级用户.普通用户以及系统用户. 每一个用户在ubuntu中都必须拥有一种账户,在Ubuntu中, /etc/passwd用来保存每个账户的信息.实际密码保 ...

最新文章

  1. 一位合格软件工程师应该具备怎样的工程化、交付能力?
  2. 1、MySQL视图是什么?
  3. 狱警招计算机专业干啥,狱警迎来“大扩招”消息,福利待遇不输公务员,大专学历也能报...
  4. AlarmManager使用
  5. BackgroundWorker学习笔记
  6. 我们自身的认知可以改变吗?
  7. 跟踪oracle中sql语句运行过程及相关知识拓展
  8. 基于Java+SpringBoot+vue+elementui农产品物流系统详细设计实现
  9. ECharts学习笔记(1)——使用关系图展示关联分析结果
  10. oppoJava面试!一招彻底帮你搞定HashMap源码,极其重要
  11. MSDN Library下载与安装(MFC)
  12. 想要成为大牛应该做到以下几点
  13. 一步一步建立自己的神经网络
  14. [error]: Found option without preceding group in config file ....\my.ini at line:1
  15. Android音乐播放模式切换-外放、听筒、耳机
  16. xp计算机u盘重装系统,机械师电脑u盘重装系统xp教程
  17. 计算机策略组 网络,组策略怎么用 玩转电脑组策略技巧 (全文)
  18. ssh 连接其他服务器
  19. 识别芯片引脚号的方法
  20. TMA三均线股票期货高频交易策略的R语言实现

热门文章

  1. [python网络编程]使用scapy修改源IP发送请求
  2. Java基础-学习笔记(六)——类的封装性
  3. 2008江西高考0分作文
  4. 全国主要省份城市的DNS服务器地址
  5. 【重识 HTML + CSS】CSS 伪类、伪元素
  6. WIN10 如何修改 文件后缀名 设置后缀名可修改
  7. python环境配置(三)——notepad ++配置python开发环境
  8. Windows域控去掉密码强度策略 可以设置简单密码【全域策略生效】
  9. [转][Python小记] 通俗的理解闭包 闭包能帮我们做什么?
  10. Tomcat绑定jre