>  기사  >  운영 및 유지보수  >  리눅스 권한 명령이란 무엇입니까?

리눅스 권한 명령이란 무엇입니까?

青灯夜游
青灯夜游원래의
2021-07-26 17:06:2734046검색

Linux 권한 명령: 1. 파일 및 디렉터리에 속한 그룹을 수정하는 데 사용되는 chgrp 명령, 2. 파일 및 디렉터리의 소유자와 그룹을 수정하는 데 사용되는 chown 명령, 3. 파일 또는 디렉터리를 수정하는 데 사용되는 chmod 명령 4. umask 명령은 새로 생성된 파일과 디렉터리에 기본 권한을 부여할 수 있습니다.

리눅스 권한 명령이란 무엇입니까?

이 튜토리얼의 운영 환경: CentOS 6 시스템, Dell G3 컴퓨터.

Linux chgrp 명령: 파일 및 디렉터리의 그룹 소유권 수정

chgrp 명령은 파일(또는 디렉터리)의 그룹 소유권을 수정하는 데 사용됩니다.

초보자가 기억하기 쉽도록 chgrp는 "change group"의 약자로 이해하시면 됩니다.

chgrp 명령의 사용법은 매우 간단합니다. 기본 형식은

[root@localhost ~]# chgrp [-R] 所属组 文件名(目录名)
  • -R입니다(대문자로 표시됨). 해당 디렉터리는 변경 사항이 모든 하위 디렉터리에 포함됨을 나타냅니다. -R(注意是大写)选项长作用于更改目录的所属组,表示更改连同子目录中所有文件的所属组信息。

使用此命令需要注意的一点是,要被改变的群组名必须是真实存在的,否则命令无法正确执行,会提示 "invaild group name"。

举个例子,当以 root 身份登录 Linux 系统时,主目录中会存在一个名为 install.log 的文件,我们可以使用如下方法修改此文件的所属组:

[root@localhost ~]# groupadd group1
#新建用于测试的群组 group1
[root@localhost ~]# chgrp group1 install.log
#修改install.log文件的所属组为group1
[root@localhost ~]# ll install.log
-rw-r--r--. 1 root group1 78495 Nov 17 05:54 install.log
#修改生效
[root@localhost ~]# chgrp testgroup install.log
chgrp: invaild group name 'testgroup'

可以看到,在具有 group1 群组的前提下,我们成功修改了 install.log 文件的所属组,但我们再次试图将所属组修改为 testgroup 时,命令执行失败,就是因为系统的 /etc/group 文件中,没有 testgroup 群组。

Linux chown命令:修改文件和目录的所有者和所属组

chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。

当只需要修改所有者时,可使用如下 chown 命令的基本格式:

[root@localhost ~]# chown [-R] 所有者 文件或目录
  • -R

이 명령을 사용할 때 주의할 점은 변경하려는 그룹 이름이 실제로 존재해야 한다는 것입니다. 그렇지 않으면 명령이 올바르게 실행될 수 없으며 "잘못된 그룹 이름"이라는 메시지가 표시됩니다.

예를 들어 Linux 시스템에 루트로 로그인하면 홈 디렉터리에 install.log라는 파일이 있을 것입니다. 다음 방법을 사용하여 이 파일이 속한 그룹을 수정할 수 있습니다. group1 그룹을 전제로 install.log 파일이 속한 그룹을 성공적으로 수정했으나, 다시 testgroup으로 그룹을 변경하려고 했더니 testgroup 그룹이 없어 명령 실행이 실패했습니다. 시스템의 /etc/group 파일.

Linux chown 명령: 파일 및 디렉터리의 소유자와 그룹을 수정합니다. "change owner"의 약어로 생각될 수 있는

chown 명령은 주로 파일의 소유자(또는 디렉터리), 무엇보다도 이 명령은 파일(또는 디렉터리)이 속한 그룹을 수정할 수도 있습니다.

소유자만 수정해야 하는 경우 다음과 같이 chown 명령의 기본 형식을 사용할 수 있습니다.

[root@localhost ~]# chown [-R] 所有者:所属组 文件或目录

-R(대문자 주의) 옵션은 다음과 같이 chown 명령의 모든 파일을 변경하는 것을 의미합니다. 누구와 함께 하위 디렉토리.

소유자와 그룹을 동시에 변경해야 하는 경우 chown 명령의 기본 형식은 다음과 같습니다.

[root@localhost ~]# touch file
#由root用户创建file文件
[root@localhost ~]# ll file
-rw-r--r--. 1 root root 0 Apr 17 05:12 file
#文件的所有者是root,普通用户user对这个文件拥有只读权限
[root@localhost ~]# chown user file
#修改文件的所有者
[root@localhost ~]# ll file
-rw-r--r--. 1 user root 0 Apr 17 05:12 file
#所有者变成了user用户,这时user用户对这个文件就拥有了读、写权限

chown 명령에서는 소유자와 그룹 사이에 점(.)을 사용할 수도 있습니다. 그룹이지만 문제가 발생합니다. 사용자가 계정 설정 시 소수점(예: zhangsan.temp)을 추가하면 시스템에서 잘못된 판단을 내릴 수 있습니다. 따라서 소유자와 그가 속한 그룹을 콜론으로 연결하는 것이 좋습니다.

물론 chown 명령은 파일이나 디렉터리가 속한 그룹을 간단히 수정하는 것도 지원합니다. 예를 들어 chown :group install.log는 install.log 파일이 속한 그룹을 수정한다는 의미입니다. 그러나 chgrp 명령은 다음과 같습니다. 일반적으로 그룹을 수정하는 데 사용되므로 chown 명령을 사용하지 않는 것이 좋습니다. 또 한 가지 주의할 점은 chown 명령을 사용하여 파일이나 디렉터리의 소유자(또는 소유자)를 수정할 때 해당 사용자(또는 사용자 그룹)가 존재하는지 확인해야 한다는 것입니다. 그렇지 않으면 명령이 올바르게 실행될 수 없으며 "잘못된" 명령입니다. 사용자"라는 메시지가 표시됩니다." 또는 "잘못된 그룹"입니다.

【예시 1】

사실 더 높은 권한을 얻기 위해 파일 소유자를 수정하는 경우가 더 많습니다. 예를 들면 다음과 같습니다.

[root@localhost ~]# cd /home/user
#进入user用户的家目录
[root@localhost user]# touch test
#由root用户新建文件test
[root@localhost user]# ll test
-rw-r--r--. 1 root root 0 Apr 17 05:37 test
#文件所有者和所属组都是root用户
[root@localhost user]# su - user
#切换为user用户
[user@localhost ~]$ chmod 755 test
chmod:更改"test"的权限:不允许的操作 #user用户不能修改test文件的权限
[user@localhost ~]$ exit
#退回到root身份
[root@localhost user]# chown user test
#由root用户把test文件的所有者改为user用户
[root@localhost user]# su - user
#切换为user用户
[user@localhost ~]$ chmod 755 test
#user用户由于是test文件的所有者,所以可以修改文件的权限
[user@localhost ~]$ ll test
-rwxr-xr-x. 1 user root 0 Apr 17 05:37 test
#查看权限
파일 소유자를 수정하면 사용자가 다음을 수행할 수 있다는 것을 알 수 있습니다. 다른 사용자로부터 더 높은 권한을 얻습니다. 파일에 대한 읽기 권한만 있는 사람 ID가 파일에 대한 읽기 및 쓰기 권한이 있는 소유자 ID로 변경됩니다.

[예제 2]

리눅스 시스템에서는 루트 사용자가 가장 높은 권한을 가지며 모든 파일의 권한을 수정할 수 있지만 일반 사용자는 자신의 권한만 수정할 수 있습니다. 파일(소유자는 파일 자체임), 예:
[root@localhost ~]# chown user:group file
[root@localhost ~]# ll file
-rw-r--r--. 1 user group 0 Apr 17 05:12 file

사용자 사용자는 루트 사용자인 파일의 권한을 변경할 권한이 없음을 알 수 있습니다. 이 파일의 소유자인 일반 사용자만 해당됩니다. 파일은 파일의 권한을 수정할 수 있습니다.

【예제 3】

[root@localhost ~]# chmod [-R] 权限值 文件名

chmod 명령: 파일 또는 디렉터리의 권한 수정

chmod 명령에는 파일 권한을 설정하는 두 가지 방법이 있습니다. 숫자나 기호를 사용하여 권한을 변경할 수 있습니다.

1. chmod 명령은 숫자를 사용하여 파일 권한을 수정합니다.

Linux 시스템에서 파일의 기본 권한은 9자로 구성됩니다. rwxrw-r-x를 예로 들면, 숫자를 사용하여 각 권한을 나타낼 수 있습니다. 각 권한과 숫자의 관계는 다음과 같습니다.

r --> 4

🎜w --> 2🎜🎜x --> 1🎜🎜🎜 3가지 유형의 사용자, 각 사용자 ID에는 3가지 권한(r, w, x)이 포함되어 있으며, 세 가지 권한에 해당하는 숫자를 누적하여 최종 값을 각 사용자의 권한으로 사용할 수 있습니다. 🎜🎜rwxrw-r-x를 예로 들면 소유자, 해당 소유자가 속한 그룹 및 다른 사람에 해당하는 권한 값은 다음과 같습니다. 🎜🎜🎜owner = rwx = 4+2+1 = 7🎜🎜group to which they own = rw- = 4+2 = 6🎜🎜Others = r-x = 4+1 = 5🎜🎜🎜따라서 이 권한에 해당하는 권한 값은 765입니다. 🎜

使用数字修改文件权限的 chmod 命令基本格式为:

[root@localhost ~]# chmod [-R] 权限值 文件名
  • -R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。

例如,使用如下命令,即可完成对 .bashrc 目录文件的权限修改:

[root@localhost ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 Sep 22 2004 .bashrc
[root@localhost ~]# chmod 777 .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc

再举个例子,通常我们以 Vim 编辑 Shell 文件批处理文件后,文件权限通常是 rw-rw-r--(644),那么,如果要将该文件变成可执行文件,并且不让其他人修改此文件,则只需将此文件的权限该为 rwxr-xr-x(755)即可。

2、chmod命令使用字母修改文件权限

既然文件的基本权限就是 3 种用户身份(所有者、所属组和其他人)搭配 3 种权限(rwx),chmod 命令中用 u、g、o 分别代表 3 种身份,还用 a 表示全部的身份(all 的缩写)。另外,chmod 命令仍使用 r、w、x 分别表示读、写、执行权限。

使用字母修改文件权限的 chmod 命令,其基本格式如下图所示。

리눅스 권한 명령이란 무엇입니까?

例如,如果我们要设定 .bashrc 文件的权限为 rwxr-xr-x,则可执行如下命令:

[root@localhost ~]# chmod u=rwx,go=rx .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc

再举个例子,如果想要增加 .bashrc 文件的每种用户都可做写操作的权限,可以使用如下命令:

[root@localhost ~]# ls -al .bashrc
-rwxr-xr-x. 1 root root 176 Sep 22 2004 .bashrc
[root@localhost ~]# chmod a+w .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc

umask命令:令新建文件和目录拥有默认权限

Linux 通过使用 umask 默认权限来给所有新建的文件和目录赋予初始权限的。

那么,我们如何得知 umask 默认权限的值呢?直接通过 umask 命令即可:

[root@localhost ~]# umask
0022
#root用户默认是0022,普通用户默认是 0002

umask默认权限的修改方法

umask 权限值可以通过如下命令直接修改:

[root@localhost ~]# umask 002
[root@localhost ~]# umask
0002
[root@localhost ~]# umask 033
[root@localhost ~]# umask
0033

不过,这种方式修改的 umask 只是临时有效,一旦重启或重新登陆系统,就会失效。如果想让修改永久生效,则需要修改对应的环境变量配置文件 /etc/profile。例如:

[root@localhost ~]# vim /etc/profile
...省略部分内容...
if [ $UID -gt 199]&&[ "'id -gn'" = "'id -un'" ]; then
    umask 002
    #如果UID大于199(普通用户),则使用此umask值
else
    umask 022
    #如果UID小于199(超级用户),则使用此umask值
fi
…省略部分内容…

这是一段 Shell 脚本程序,不懂也没关系,大家只需要知道,普通用户的 umask 由 if 语句的第一段定义,而超级用户 root 的 umask 值由 else 语句定义即可。 修改此文件,则 umask 值就会永久生效。

相关推荐:《Linux视频教程

위 내용은 리눅스 권한 명령이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.