博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【linux】与 用户、权限 有关的常用命令
阅读量:7045 次
发布时间:2019-06-28

本文共 3343 字,大约阅读时间需要 11 分钟。

查看信息

查看文件、文件夹的filesystem metadata

# 查看**单个**文件、文件夹的权限信息stat filename# 或者使用以下命令来查看当前目录下**所有**文件、文件夹的权限信息ls -la # 显示username、groupnamels -na # 显示userid、groupid
ls -l每个列的含义: 。

查询用户、群组信息

# 查看当前用户(准确地说是当前bash进程的拥有者)的信息:id# 查看指定用户的信息:id usernameid userid# 查看当前用户(准确地说是当前bash进程的拥有者)的所有群组:groups# 查看指定用户的所有群组(注意该命令必须输入username,不能是userid):groups username# 查看**所有**用户的信息:cat /etc/passwd# 查看**所有**群组的信息:cat /etc/group

current group

执行id命令以后你会看到返回结果包括gid和groups。:gid只是当前登陆群组, 而groups列出了用户所在的所有群组。用户所在的群组可以有很多,但是在任何一个时刻,一个用户只能登陆一个群组。后面面会介绍命令,使用它,用户可以切换到其他群组。

primary group 和 supplementary group

用户所在的群组可以有很多,可以指定其中一个为主群组(primary group),剩下的都是supplementary group。主群组是 GUI登陆、打开命令行窗口、ssh登陆 以后的默认登陆群组

修改primary group和supplementary group的usermod命令下面会讲到。

Real User ID, Effective User ID, Saved User ID

在查看一些命令的manuals时(比如),你可能会注意到userid还分为Real User ID, Effective User ID, Saved User ID三种。每个进程的描述表(process descriptor table)都存储了这三种UID。

查看系统中所有的进程以及进程的拥有者

ps aux

命令非常强大,几乎能给你所有需要的进程信息!设置几个参数就能让它输出我们想要的进程信息:

ps --pid 25138 -O uid,uname,gid,group,ppid

上面的参数表示,我要查看pid为6685的进程,并且除了默认的列以外,多展示几列:uid,uname,gid,group,ppid

输出如下:

在 中,能找到这个命令的更多用法、更多可以展示的列:

在docker容器内使用ps命令

docker容器内的bash使用ps命令时,很有可能会提示你ps命令不存在,这是因为docker image经常精简掉了ps程序(毕竟docker容器中一般只运行一个进程)。这个时候使用

apt-get update && apt-get install procps

来安装ps

在中国连接国外的Ubuntu软件源服务器
可能会非常慢,这时你应该改一下ubuntu的软件源(通过系统设置就能改)。
如果你在docker容器内使用
apt,你需要手动改变软件源。先通过 定制符合你需要的
sources.list文件(至少要选择"Main - Officially supported software."这一项),然后将这个文件放在容器内的路径
/etc/apt/sources.list(可以使用命令
docker cp ./sources.list 容器名称:/etc/apt/sources.list或者Dockerfile的
COPY ./sources.list /etc/apt/sources.list指令)。

修改文件元信息

chmod修改文件、文件夹的权限

# 修改文件、文件夹的权限(如果要修改不属于当前用户的文件,还需要使用sudo)chmod 755 filename# 递归修改文件夹、文件夹内所有文件的权限(注意要使用sudo和-R)sudo chmod 777 -R /path/to/directory

chown修改文件的拥有者、拥有群组

执行这种修改时,必须使用sudo。

# 修改文件/文件夹的ownersudo chown username filename# 修改文件/文件夹的groupsudo chown :groupname filename# 同时修改文件/文件夹的owner和groupsudo chown username:groupname filename# 加上-R参数,能够递归修改文件夹、文件夹内的所有文件!

上面的username、groupname也可以用userid、groupid代替。使用userid、groupid有一个很方便的地方:userid、groupid可以不存在于当前系统中,!

参考 。

修改用户、群组信息

新建和删除

新建用户、群组有关的工作,分别交给以下两个命令:

adduser和addgroup的manuals页面其实是一模一样的,它们的功能是很相似的,只不过adduser对应于user,addgroup对应于group。

使用这两个命令可以做到这几件事:

  1. 新建一个normal user

    adduser  [options]  [--home  DIR]  [--shell  SHELL]  [--no-create-home]  [--uid ID] [--firstuid ID] [--lastuid ID] [--ingroup GROUP | --gid  ID]  [--disabled-password]      [--disabled-login]      [--gecos      GECOS]  [--add_extra_groups] [--encrypt-home] user
  2. 新建一个system user

    adduser --system [options] [--home DIR] [--shell  SHELL]  [--no-create-home]  [--uid  ID]  [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--gecos GECOS] user
  3. 新建一个user group

    addgroup [options] [--gid ID] group
  4. 新建一个system group

    addgroup --system [options] [--gid ID] group
  5. 将一个已经存在的user加入到一个已经存在的group中

    adduser [options] user group

这五种功能的解释,以及每种功能可以使用的参数,都在有详细的解释。

同理,对于用户、群组的删除,分别有和,它们的manuals也是一模一样的。

修改已有用户、用户组

修改已有用户、用户组有关的工作,分别交给以下两个命令:

对于usermod,比较常用的参数有--gid --groups --uid,它们分别修改用户的 、额外加入的群组、用户id 。

对于groupmod,比较常用的参数有--gid --new-name,它们分别修改群组的id、群组的名称。

切换用户、切换群组

切换用户

在bash中切换用户以后,通过这个bash执行的子程序,会以新的用户身份来完成。

注意,仅仅是
当前bash进程的拥有者改变了。并不像windows那样注销整个系统再以新用户登陆!

如所讲,在命令行中切换用户只需要通过以下命令:

su - username

切换群组

前面已经说过,一个用户可以加入多个群组,但是任何一个时刻只能登陆一个群组。要切换当前用户所登陆的群组,使用命令。

newgrp - groupname

练手教程

转载地址:http://dxhal.baihongyu.com/

你可能感兴趣的文章
【IT基础】批处理
查看>>
博客园主题修改中用到的css属性
查看>>
java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的区别
查看>>
HttpClient4.5教程-第三章-HTTP状态管理
查看>>
Nodejs的第一个页面
查看>>
实习第2天
查看>>
采用aVCS实现配置自动同步
查看>>
JAVA面试算法题4
查看>>
科技公司Vs.传统汽车厂商:谁做自动驾驶更有优势?
查看>>
java.net.BindException: Cannot assign requested address
查看>>
WinAPI 编写基本服务程序
查看>>
Android SDK中 tools 目录下的工具介绍
查看>>
J2EE下的oracle数据库备份方法
查看>>
网络管理技巧进阶:七招鲜
查看>>
PostgreSQL 11 preview - 分区智能并行JOIN (类似MPP架构,性能暴增)
查看>>
SCVMM2012R2 高可用性安装及配置
查看>>
关于邮件无法发送的问题
查看>>
Greenplum roaring bitmap与业务场景 (类阿里云RDS PG varbitx, 应用于海量用户 实时画像和圈选、透视)...
查看>>
深入研究Java类加载机制
查看>>
Server 2008 R2 AD RMS完整部署:RMS部署篇
查看>>