Как изменить владельца диска linux

В Linux права собственности на файлы и папки составляют основу управления доступом к различным возможностям операционной системы. То какому пользователю и

В Linux права собственности на файлы и папки составляют основу управления доступом к различным возможностям операционной системы. То какому пользователю и группе принадлежит папка определяет кто сможет получить к ней доступ, создавать и удалять там файлы и другие папки и так далее.

В этой небольшой статье мы рассмотрим как сменить владельца папки Linux в графическом интерфейсе или с помощью терминала.

Вы можете изменить владельца папки с помощью файлового менеджера, например в Nautilus. Но для этого надо запустить файловый менеджер от имени суперпользователя. Откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:

sudo nautilus

Затем найдите нужную папку, и кликните по ней правой кнопкой мыши. В открывшемся контекстном меню выберите пункт Свойства:

В появившемся окне перейдите на вкладку Права. Здесь можно изменить владельца папки и группу владельца с помощью выпадающего списка напротив соответствующего пункта:

Если вам нужно чтобы эти изменения были применены для всех вложенных папок и файлов, нажмите внизу окна кнопку Изменить права на вложенные файлы…

Вот так всё просто. Если у вас не получается запустить файловый менеджер или вы хотите работать в терминале это тоже возможно. Для того чтобы сменить владельца папки следует использовать утилиту chown. Синтаксис у неё такой:

$ chown опции новый_владелец:новая_группа /путь/к/папке

Подробнее об этой утилите вы можете просмотреть в отдельной статье. Например, чтобы сменить владельца папки ~/Видео/losst/ на testuser следует выполнить такую команду:

sudo chown testuser ~/Видео/losst

В данном случае группа останется без изменений, чтобы изменить также группу-владельца выполните:

sudo chown testuser:testuser ~/Видео/losst

Если нужно сменить владельца папки Linux рекурсивно используйте опцию -R:

sudo chown -R testuser:testuser ~/Видео/losst

Обратите внимание, что все файлы и папки, создаваемые в системе по умолчанию будут иметь владельцем пользователя, который их создаёт, а группой-владельцем — основную группу этого пользователя. Такое поведение изменить нельзя. Чтобы избежать проблем с неверно присвоенным папке владельцем в будущем запускайте программу, которая создаёт папку или файл от имени пользователя, которому папка должна принадлежать. Сделать это очень просто с помощью sudo. Например, для пользователя losst:

sudo -u losst ./script.sh

Как видите, поменять владельца папки в Linux можно очень просто. Для этого достаточно выполнить несколько команд в терминале или сделать пару щелчков мышкой.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Linux chmod and chown – How to Change File Permissions and Ownership in Linux

Linux is a multi user OS which means that it supports multiple users at a time.

As many people can access the system simultaneously and some resources are shared, Linux controls access through ownership and permissions.

In Linux, there are three types of owners: user, group, and others .

Linux User

A user is the default owner and creator of the file. So this user is called owner as well.

Linux Group

A user-group is a collection of users. Users that belonging to a group will have the same Linux group permissions to access a file/ folder.

You can use groups to assign permissions in a bulk instead of assigning them individually. A user can belong to more than one group as well.

Other

Any users that are not part of the user or group classes belong to this class.

Linux File Permissions

File permissions fall in three categories: read, write, and execute.

Read permission

For regular files, read permissions allow users to open and read the file only. Users can’t modify the file.

Similarly for directories, read permissions allow the listing of directory content without any modification in the directory.

Write permission

When files have write permissions, the user can modify (edit, delete) the file and save it.

For folders, write permissions enable a user to modify its contents (create, delete, and rename the files inside it), and modify the contents of files that the user has write permissions to.

Execute permission

For files, execute permissions allows the user to run an executable script. For directories, the user can access them, and access details about files in the directory.

Below is the symbolic representation of permissions to user, group, and others.

image-157

Symbolic representation of permissions

Note that we can find permissions of files and folders using long listing (ls -l) on a Linux terminal.

image-158

Output of long listing

In the output above, d represents a directory and- represents a regular file.

image-159

How to Change Permissions in Linux Using the chmod Command

Now that we know the basics of ownerships and permissions, let’s see how we can modify permissions using the chmod command.

Syntax of chmod:

chmod permissions filename

Where,

  • permissions can be read, write, execute or a combination of them.
  • filename is the name of the file for which the permissions need to change. This parameter can also be a list if files to change permissions in bulk.

We can change permissions using two modes:

  1. Symbolic mode: this method uses symbols like u, g, o to represent users, groups, and others. Permissions are represented as  r, w, x for read write and execute, respectively. You can modify permissions using +, — and =.
  2. Absolute mode: this method represents permissions as 3-digit octal numbers ranging from 0-7.

Now, let’s see them in detail.

How to Change Permissions using Symbolic Mode

The table below summarize the user representation:

User representation Description
u user/owner
g group
o other

We can use mathematical operators to add, remove, and assign permissions. The table below shows the summary:

Operator Description
+ Adds a permission to a file or directory
Removes the permission
= Sets the permission if not present before. Also overrides the permissions if set earlier.

Example:

Suppose, I have a script and I want to make it executable for owner of the file zaira.

Current file permissions are as follows:

image-161

Let’s split the permissions like this:

image-160

To add execution rights (x) to owner (u) using symbolic mode, we can use the command below:

chmod u+x mymotd.sh

Output:

Now, we can see that the execution permissions have been added for owner zaira.

image-162

Additional examples for changing permissions via symbolic method:

  • Removing read and write permission for group and others: chmod go-rw.
  • Removing read permissions for others: chmod o-r.
  • Assigning write permission to group and overriding existing permission: chmod g=w.

How to Change Permissions using Absolute Mode

Absolute mode uses numbers to represent permissions and mathematical operators to modify them.

The below table shows how we can assign relevant permissions:

Permission Provide permission
read add 4
write add 2
execute add 1

Permissions can be revoked using subtraction. The below table shows how you can remove relevant permissions.

Permission Revoke permission
read subtract 4
write subtract 2
execute subtract 1

Example:

  • Set read (add 4) for user, read (add 4) and execute (add 1) for group, and only execute (add 1) for others.

chmod 451 file-name

This is how we performed the calculation:

image-163

Note that this is the same as r--r-x--x.

  • Remove execution rights from other and group.

To remove execution from other and group, subtract 1 from the execute part of last 2 octets.

image-164

  • Assign read, write and execute to user, read and execute to group and only read to others.

This would be the same as rwxr-xr--.

image-165

How to Change Ownership using the chown Command

Next, we will learn how to change the ownership of a file. You can change the ownership of a file or folder using the chown command. In some cases, changing ownership requires sudo permissions.

Syntax of chown:

chown user filename

How to change user ownership with chown

Let’s transfer the ownership from user zaira to user news.

chown news mymotd.sh

image-167

Command to change ownership: sudo chown news mymotd.sh

Output:

image-168

How to change user and group ownership simultaneously

We can also use chown to change user and group simultaneously.

chown user:group filename

How to change directory ownership

You can change ownership recursively for contents in a directory. The example below changes the ownership of the /opt/script folder to allow user admin.

chown -R admin /opt/script

How to change group ownership

In case we only need to change the group owner, we can use chown by preceding the group name by a colon :

chown :admins /opt/script

Linux Permissions Guided Exercise

Up until now we have explored permissions, ownerships, and the methods to change them. Now we will reinforce our learning with a guided exercise.

Goal: To create groups and assign relevant permissions to its members. Verify access by accessing it from unauthorized users.

Task: Create a group called dev-team and add two members (John and Bob) to it. Create a folder /home/dev-team and change ownership to group dev-team. Verify that both users in the dev-team group have read and write access to the folder.

Create another group project-manager and add a user Fatima to it. Verify if the folder /home/dev-team is accessible by Fatima.

Visualization of the problem

We can visualize the problem like this:

Notes_220426_040131_1

Step 1: Switch to root user.
Switch to root user so that we have the rights to create new users and groups.

Show hint

Use the sudo command with flag i.

If you have the root password, you can login using that as well.

Show solution

Enter sudo -i to switch to the root user.

Enter whoami to find out if you are the root user:

step1-1

If you do not have root access, use the commands with appending sudo.


Step 2: Create a group dev-team

Show hint

Use the groupadd command.

Syntax: groupadd group-name

Show solution

Enter groupadd dev-team to create the dev-team group

Verify: cat /etc/group | grep dev-team


Step 3: Create two new users John and Bob and add them to the dev-team group

Show hint

Use command useradd.

useradd creates a new user and adds to the specified group.

Syntax: useradd -G groupname username

Where -G specifies the group.

Show solution

useradd -G dev-team John

useradd -G dev-team Bob

Verify: cat /etc/group | grep dev-team

step3-1


Step 4: Provide passwords for users John and Bob

Show hint

Use command passwd

passwd creates a password for users.

Syntax: passwd username

Show solution

passwd John

passwd Bob


Step 5: Create a directory in /home and name it dev-team

Show hint

Use command mkdir

mkdir creates a directory.

Syntax: mkdir directory-name

Show solution

mkdir /home/dev-team

Verify:

correction


Step 6: Change the group ownership of the folder dev-team to group dev-team

Show hint

Use command chown

Syntax: chown :group-name folder

Show solution

chown :dev-team /home/dev-team/

step6


Step 7: Make sure the permissions of folder dev-team allow group members to create and delete files.

Show hint

Use command chmod

Write permissions allow users and groups to create and delete files.

Syntax: chmod permissions folder

Show solution

chmod g+w /home/dev-team/

step7


Step 8: Ensure that ‘others’ don’t have any access to the files of dev-team folder.

Show hint

Use command chmod

Remove read, write, execute permissions from ‘others’ if they exist.

Syntax: chmod permissions folder

Show solution

chmod o-rx dev-team

correction2


Step 9: Exit the root session and switch to John

Show hint

Use command exit to logout of the root user.

Use su to switch users.

Syntax: su - user

To confirm current user, use command whoami.

Show solution

exit

su - John

Verify with command whoami.


Step 10: Navigate to folder: /home/dev-team

Show hint

Use command cd to switch folders.

Syntax: cd /path/to/folder

Confirm current path with pwd.

Show solution

cd /home/dev-team


Step 11: Create an empty file in the folder: /home/dev-team

Show hint

Use command touch to create an empty file.

Syntax: touch filename

Show solution

touch john-file.txt

Verify: ls -lrt

john


Step 12: Change the group ownership of the created file to dev-team and verify.

Show hint

Use command chown to change ownership.

Syntax: chown :group file-name

Show solution

chown :dev-team john-file.txt

Once group ownership is modified, all members of the group can access this file.

Verify ls -lrt

step10


Step 13: Exit the shell and switch to user Bob

Show hint

Use command exit to exit the terminal.

Use su to switch users.

Syntax: su - user

To confirm current user, use command whoami.

Show solution

exit

su - Bob

Verify the current user with command whoami.


Step 14: Navigate to the path /home/dev-team

Show hint

Use command cd to switch folders.

Syntax: cd /path/to/folder

Confirm current path with pwd.

Show solution

cd /home/dev-team


Step 15: Find out Bob's privileges to access john-file.txt

Show hint

Use command ls -l for long listing.

Syntax: ls -l | grep file-name

Does group have rw- permissions?

Show solution

ls -l | grep john-file.txt

step13


Step 16: Modify the file john-file.txt while logged in as Bob

Show hint

Use command echo to add some text to the file.

Syntax: echo "Some text" >>file-name

This would redirect the quoted text to end of the file.

Show solution

echo "This is Bob's comment" > john-file.txt

If all the permissions are correctly set, Bob would be allowed to edit and save this file. Otherwise you would get an error like this: Permission denied.

Verify cat john-file.txt

bob-comment


Step 17: Create another group project-manager and assign a member Fatima to it

Show hint

Use command groupadd to add a new group.

Syntax: groupadd group-name

Create a new user with command useradd.

Use flag -G to assign a user to it.

Show solution

groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima

Step 18: Navigate to folder /home/dev-team and verify if Fatima can access it

Show hint

Use cd to navigate to /home/dev-team.

Show solution

cd /home/dev-team.

We get this error:

fatima

This is because, others don’t have any access to the folder dev-team.

If we recall, below are the rights of the dev-team folder.

recall

Wrapping up

Permissions and ownerships are useful concepts for enforcing security across multi-user operating systems. I hope you were able to learn about changing permissions and ownerships in depth.

What’s your favorite thing you learned from this tutorial? Let me know on Twitter!

You can also read my other posts here.

Thanks to Tom Mondloch for his help with the guided exercise.



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Linux chmod and chown – How to Change File Permissions and Ownership in Linux

Linux is a multi user OS which means that it supports multiple users at a time.

As many people can access the system simultaneously and some resources are shared, Linux controls access through ownership and permissions.

In Linux, there are three types of owners: user, group, and others .

Linux User

A user is the default owner and creator of the file. So this user is called owner as well.

Linux Group

A user-group is a collection of users. Users that belonging to a group will have the same Linux group permissions to access a file/ folder.

You can use groups to assign permissions in a bulk instead of assigning them individually. A user can belong to more than one group as well.

Other

Any users that are not part of the user or group classes belong to this class.

Linux File Permissions

File permissions fall in three categories: read, write, and execute.

Read permission

For regular files, read permissions allow users to open and read the file only. Users can’t modify the file.

Similarly for directories, read permissions allow the listing of directory content without any modification in the directory.

Write permission

When files have write permissions, the user can modify (edit, delete) the file and save it.

For folders, write permissions enable a user to modify its contents (create, delete, and rename the files inside it), and modify the contents of files that the user has write permissions to.

Execute permission

For files, execute permissions allows the user to run an executable script. For directories, the user can access them, and access details about files in the directory.

Below is the symbolic representation of permissions to user, group, and others.

image-157

Symbolic representation of permissions

Note that we can find permissions of files and folders using long listing (ls -l) on a Linux terminal.

image-158

Output of long listing

In the output above, d represents a directory and- represents a regular file.

image-159

How to Change Permissions in Linux Using the chmod Command

Now that we know the basics of ownerships and permissions, let’s see how we can modify permissions using the chmod command.

Syntax of chmod:

chmod permissions filename

Where,

  • permissions can be read, write, execute or a combination of them.
  • filename is the name of the file for which the permissions need to change. This parameter can also be a list if files to change permissions in bulk.

We can change permissions using two modes:

  1. Symbolic mode: this method uses symbols like u, g, o to represent users, groups, and others. Permissions are represented as  r, w, x for read write and execute, respectively. You can modify permissions using +, — and =.
  2. Absolute mode: this method represents permissions as 3-digit octal numbers ranging from 0-7.

Now, let’s see them in detail.

How to Change Permissions using Symbolic Mode

The table below summarize the user representation:

User representation Description
u user/owner
g group
o other

We can use mathematical operators to add, remove, and assign permissions. The table below shows the summary:

Operator Description
+ Adds a permission to a file or directory
Removes the permission
= Sets the permission if not present before. Also overrides the permissions if set earlier.

Example:

Suppose, I have a script and I want to make it executable for owner of the file zaira.

Current file permissions are as follows:

image-161

Let’s split the permissions like this:

image-160

To add execution rights (x) to owner (u) using symbolic mode, we can use the command below:

chmod u+x mymotd.sh

Output:

Now, we can see that the execution permissions have been added for owner zaira.

image-162

Additional examples for changing permissions via symbolic method:

  • Removing read and write permission for group and others: chmod go-rw.
  • Removing read permissions for others: chmod o-r.
  • Assigning write permission to group and overriding existing permission: chmod g=w.

How to Change Permissions using Absolute Mode

Absolute mode uses numbers to represent permissions and mathematical operators to modify them.

The below table shows how we can assign relevant permissions:

Permission Provide permission
read add 4
write add 2
execute add 1

Permissions can be revoked using subtraction. The below table shows how you can remove relevant permissions.

Permission Revoke permission
read subtract 4
write subtract 2
execute subtract 1

Example:

  • Set read (add 4) for user, read (add 4) and execute (add 1) for group, and only execute (add 1) for others.

chmod 451 file-name

This is how we performed the calculation:

image-163

Note that this is the same as r--r-x--x.

  • Remove execution rights from other and group.

To remove execution from other and group, subtract 1 from the execute part of last 2 octets.

image-164

  • Assign read, write and execute to user, read and execute to group and only read to others.

This would be the same as rwxr-xr--.

image-165

How to Change Ownership using the chown Command

Next, we will learn how to change the ownership of a file. You can change the ownership of a file or folder using the chown command. In some cases, changing ownership requires sudo permissions.

Syntax of chown:

chown user filename

How to change user ownership with chown

Let’s transfer the ownership from user zaira to user news.

chown news mymotd.sh

image-167

Command to change ownership: sudo chown news mymotd.sh

Output:

image-168

How to change user and group ownership simultaneously

We can also use chown to change user and group simultaneously.

chown user:group filename

How to change directory ownership

You can change ownership recursively for contents in a directory. The example below changes the ownership of the /opt/script folder to allow user admin.

chown -R admin /opt/script

How to change group ownership

In case we only need to change the group owner, we can use chown by preceding the group name by a colon :

chown :admins /opt/script

Linux Permissions Guided Exercise

Up until now we have explored permissions, ownerships, and the methods to change them. Now we will reinforce our learning with a guided exercise.

Goal: To create groups and assign relevant permissions to its members. Verify access by accessing it from unauthorized users.

Task: Create a group called dev-team and add two members (John and Bob) to it. Create a folder /home/dev-team and change ownership to group dev-team. Verify that both users in the dev-team group have read and write access to the folder.

Create another group project-manager and add a user Fatima to it. Verify if the folder /home/dev-team is accessible by Fatima.

Visualization of the problem

We can visualize the problem like this:

Notes_220426_040131_1

Step 1: Switch to root user.
Switch to root user so that we have the rights to create new users and groups.

Show hint

Use the sudo command with flag i.

If you have the root password, you can login using that as well.

Show solution

Enter sudo -i to switch to the root user.

Enter whoami to find out if you are the root user:

step1-1

If you do not have root access, use the commands with appending sudo.


Step 2: Create a group dev-team

Show hint

Use the groupadd command.

Syntax: groupadd group-name

Show solution

Enter groupadd dev-team to create the dev-team group

Verify: cat /etc/group | grep dev-team


Step 3: Create two new users John and Bob and add them to the dev-team group

Show hint

Use command useradd.

useradd creates a new user and adds to the specified group.

Syntax: useradd -G groupname username

Where -G specifies the group.

Show solution

useradd -G dev-team John

useradd -G dev-team Bob

Verify: cat /etc/group | grep dev-team

step3-1


Step 4: Provide passwords for users John and Bob

Show hint

Use command passwd

passwd creates a password for users.

Syntax: passwd username

Show solution

passwd John

passwd Bob


Step 5: Create a directory in /home and name it dev-team

Show hint

Use command mkdir

mkdir creates a directory.

Syntax: mkdir directory-name

Show solution

mkdir /home/dev-team

Verify:

correction


Step 6: Change the group ownership of the folder dev-team to group dev-team

Show hint

Use command chown

Syntax: chown :group-name folder

Show solution

chown :dev-team /home/dev-team/

step6


Step 7: Make sure the permissions of folder dev-team allow group members to create and delete files.

Show hint

Use command chmod

Write permissions allow users and groups to create and delete files.

Syntax: chmod permissions folder

Show solution

chmod g+w /home/dev-team/

step7


Step 8: Ensure that ‘others’ don’t have any access to the files of dev-team folder.

Show hint

Use command chmod

Remove read, write, execute permissions from ‘others’ if they exist.

Syntax: chmod permissions folder

Show solution

chmod o-rx dev-team

correction2


Step 9: Exit the root session and switch to John

Show hint

Use command exit to logout of the root user.

Use su to switch users.

Syntax: su - user

To confirm current user, use command whoami.

Show solution

exit

su - John

Verify with command whoami.


Step 10: Navigate to folder: /home/dev-team

Show hint

Use command cd to switch folders.

Syntax: cd /path/to/folder

Confirm current path with pwd.

Show solution

cd /home/dev-team


Step 11: Create an empty file in the folder: /home/dev-team

Show hint

Use command touch to create an empty file.

Syntax: touch filename

Show solution

touch john-file.txt

Verify: ls -lrt

john


Step 12: Change the group ownership of the created file to dev-team and verify.

Show hint

Use command chown to change ownership.

Syntax: chown :group file-name

Show solution

chown :dev-team john-file.txt

Once group ownership is modified, all members of the group can access this file.

Verify ls -lrt

step10


Step 13: Exit the shell and switch to user Bob

Show hint

Use command exit to exit the terminal.

Use su to switch users.

Syntax: su - user

To confirm current user, use command whoami.

Show solution

exit

su - Bob

Verify the current user with command whoami.


Step 14: Navigate to the path /home/dev-team

Show hint

Use command cd to switch folders.

Syntax: cd /path/to/folder

Confirm current path with pwd.

Show solution

cd /home/dev-team


Step 15: Find out Bob's privileges to access john-file.txt

Show hint

Use command ls -l for long listing.

Syntax: ls -l | grep file-name

Does group have rw- permissions?

Show solution

ls -l | grep john-file.txt

step13


Step 16: Modify the file john-file.txt while logged in as Bob

Show hint

Use command echo to add some text to the file.

Syntax: echo "Some text" >>file-name

This would redirect the quoted text to end of the file.

Show solution

echo "This is Bob's comment" > john-file.txt

If all the permissions are correctly set, Bob would be allowed to edit and save this file. Otherwise you would get an error like this: Permission denied.

Verify cat john-file.txt

bob-comment


Step 17: Create another group project-manager and assign a member Fatima to it

Show hint

Use command groupadd to add a new group.

Syntax: groupadd group-name

Create a new user with command useradd.

Use flag -G to assign a user to it.

Show solution

groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima

Step 18: Navigate to folder /home/dev-team and verify if Fatima can access it

Show hint

Use cd to navigate to /home/dev-team.

Show solution

cd /home/dev-team.

We get this error:

fatima

This is because, others don’t have any access to the folder dev-team.

If we recall, below are the rights of the dev-team folder.

recall

Wrapping up

Permissions and ownerships are useful concepts for enforcing security across multi-user operating systems. I hope you were able to learn about changing permissions and ownerships in depth.

What’s your favorite thing you learned from this tutorial? Let me know on Twitter!

You can also read my other posts here.

Thanks to Tom Mondloch for his help with the guided exercise.



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Команда chown позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.

В Linux все файлы связаны с владельцем и группой, и им назначены права доступа для владельца файла, членов группы и других.

Как пользоваться chown 

Прежде чем перейти к использованию chown команды, давайте начнем с обзора основного синтаксиса.

В chown выражении команды принимает следующий вид:

chown [OPTIONS] USER[:GROUP] FILE(s)
 

USER является именем пользователя или идентификатором пользователя (UID) нового владельца. GROUP это имя новой группы или идентификатор группы (GID). FILE(s) это имя одного или нескольких файлов, каталогов или ссылок. Числовые идентификаторы должны начинаться с + символа.

  • USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, владение группой не изменится.
  • USER: — Когда за именем пользователя следует двоеточие : , а имя группы не указывается, пользователь становится владельцем файлов, а принадлежность группы файлов изменяется на группу входа пользователя.
  • USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), пользовательское владение файлами изменяется на данного пользователя, а групповое владение изменяется на данную группу.
  • :GROUP — Если пользователь не указан, а перед группой стоит двоеточие : , то только группа, владеющая файлами, будет изменена на данную группу.
  • : Если задано только двоеточие : , без указания пользователя и группы, никаких изменений не производится.

По умолчанию в случае успеха chown не выводит никаких данных и возвращает ноль.

Используйте ls -l команду, чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:

ls -l filename.txt 
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
                |       |
                |       +-----------> Group
                +-------------------> Owner
 

Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом и только в группе, членом которой они являются. Административные пользователи могут изменять групповое владение всеми файлами.

Как сменить владельца файла

Чтобы изменить владельца файла, используйте chown команду, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:

Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :

chown linuxize file1 


Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1 и каталогом dir1 на нового владельца с именем linuxize :

chown linuxize file1 dir1 


Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000 :

chown 1000 file2 


Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью + :

chown 1000 file2 

Как изменить владельца и группу файла

Чтобы изменить владельца и группу файла, используйте chown команду, за которой следует новый владелец и группа, разделенные двоеточием ( : ) без промежуточных пробелов и целевого файла.

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и группой users :

chown linuxize:users file1 

Если вы опустите имя группы после двоеточия ( : ), группа файла изменится на группу входа указанного пользователя:

chown linuxize: file1 

Как изменить группу файла

Чтобы изменить только группу файла, используйте chown команду с двоеточием ( : ) и именем новой группы (без пробелов между ними) и целевой файл в качестве аргумента:

chown :GROUP FILE
 

Следующая команда изменит группу-владельца файла с именем file1 на www-data :

chown :www-data file1 

Еще одна команда, которую вы можете использовать для изменения групповой принадлежности файлов — это chgrp .

Как изменить владельца символических ссылок 

Когда рекурсивный параметр не используется, chown команда изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символьные ссылки .

Например, если вы попытаетесь изменить владельца и группу символической ссылки, на symlink1 которую указывает ссылка /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:

chown www-data: symlink1 

Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».

Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Эта опция указана в /proc/sys/fs/protected_symlinks . 1 значит включен и 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.

Чтобы изменить групповое владение самой символической ссылкой, используйте -h параметр:

chown -h www-data symlink1 

Как рекурсивно изменить владельца файла

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( --recursive ):

chown -R USER:GROUP DIRECTORY
 

Следующий пример изменит владельца всех файлов и подкаталогов в /var/www каталоге на нового владельца и группу с именем www-data :

chown -R www-data: /var/www 

Если каталог содержит символические ссылки, передайте -h опцию:

chown -hR www-data: /var/www 

Другими параметрами, которые можно использовать при рекурсивном изменении владельца каталога, являются -H и -L .

Если аргумент, переданный chown команде, является символической ссылкой, указывающей на каталог, эта -H опция заставит команду пройти по ней. -L указывает chown на прохождение каждой символической ссылки в каталог, который встречается. Обычно вы не должны использовать эти параметры, потому что вы можете испортить вашу систему или создать угрозу безопасности.

Использование справочного файла

--reference=ref_file Опция позволяет изменить пользователя и группы владельца указанные файлы , чтобы быть такими же , как в указанном отпечатком ( ref_file ). Если ссылочный файл является символической ссылкой, chown будут использоваться пользователь и группа целевого файла.

chown --reference=REF_FILE FILE
 

Например, следующая команда назначит пользователя и владельца группы file1 для file2

chown --reference=file1 file2 

Вывод

chown утилита командной строки Linux / UNIX для изменения владельца файла и / или группы

Чтобы узнать больше о chown команде, посетите страницу руководства chown или введите man chown свой терминал.

Как мне изменить владельца Chown в Linux?

Как изменить владельца файла

  1. Станьте суперпользователем или возьмите на себя аналогичную роль.
  2. Измените владельца файла с помощью команды chown. # chown имя файла нового владельца. новый владелец. Задает имя пользователя или UID нового владельца файла или каталога. имя файла. …
  3. Убедитесь, что владелец файла сменился. # ls -l имя_файла.

Перейдите к файлам, в другие места, смонтируйте требуемый жесткий диск и затем откройте его, теперь в левом верхнем углу вы увидите его имя, щелкните его правой кнопкой мыши и выберите свойства и щелкните разрешения, а затем выберите требуемый вариант, например: — для чтения и напишите и сохраните, надеюсь, что это сработает.

Как изменить разрешения на диске Linux?

Re: Разрешения внешнего жесткого диска

  1. Перейдите в каталог вашего внешнего диска. Код: выберите все cd / media / user / ExternalDrive.
  2. Используйте эту команду, чтобы проверить право собственности / разрешения. Код: выберите все ls -al. …
  3. Измените владельца, используя любую из этих команд. Код: выберите всех sudo chown -R пользователь: root Data / Movies /

31 сред. 2016 г.

Как изменить владельца всех файлов в каталоге в Linux?

Чтобы изменить пользователя и группу, владеющую каталогами и файлами, вы должны выполнить команду «chown» с параметром «-R» и указать пользователя и группу, разделенные двоеточием. Например, предположим, что вы хотите изменить пользователя, владеющего файлами, на «user», а группу, владеющую файлами, на «root».

Как мне изменить владельца на root в Linux?

chown — это инструмент для смены владельца. Поскольку учетная запись root является типом суперпользователя, чтобы сменить владельца на root, вам необходимо запустить команду chown от имени суперпользователя с помощью sudo.

Кто может управлять Чоуном?

Большинство систем unix не позволяют пользователям «отдавать» файлы, то есть пользователи могут запускать chown только в том случае, если у них есть привилегии целевого пользователя и группы. Поскольку использование chown требует владения файлом или правами root (пользователи никогда не могут присваивать файлы других пользователей), только root может запустить команду chown, чтобы сменить владельца файла на другого пользователя.

Как мне изменить владельца внешнего жесткого диска?

Как стать владельцем внешнего жесткого диска?

  1. Щелкните правой кнопкой мыши внешний жесткий диск.
  2. В контекстном меню выберите «Свойства».
  3. Щелкните Безопасность> перейдите в Редактировать.
  4. Появится диалоговое окно «Разрешения для нового тома» (E :).
  5. Нажмите кнопку «Добавить»> добавьте новое имя пользователя> нажмите «ОК».

7 сред. 2019 г.

Как изменить разрешения на диске?

Изменить права доступа к общим папкам

  1. На вашем компьютере перейдите на drive.google.com.
  2. Выберите папку, в которой вы хотите сменить владельцев. …
  3. В правом верхнем углу нажмите Поделиться.
  4. Нажмите Дополнительно.
  5. Справа от имени человека щелкните стрелку вниз.
  6. Щелкните Владелец.
  7. Нажмите Сохранить изменения.

Как мне проверить разрешения на монтирование в Linux?

Команды Linux для проверки подключенных файлов в системе

  1. Листинг файловой системы. findmnt. …
  2. Файловая система в формате списка. findmnt –l. …
  3. Листинг системы в формате df. …
  4. Список вывода fstab. …
  5. Отфильтровать файловую систему. …
  6. ВЫХОД В RAW. …
  7. Поиск с исходным устройством. …
  8. Поиск по точке монтирования.

11 ночей. 2016 г.

Как в Linux сделать диск доступным для записи?

Сделайте диски доступными для записи

Чтобы сделать другие разделы или диски доступными для записи, нам нужно изменить разрешения для каталога монтирования. Просто откройте диск в своем любимом файловом браузере (Nautilus для пользователей gnome, Dolphin для пользователей KDE) и щелкните значок диска на левой панели, чтобы смонтировать его и просмотреть его содержимое.

Как в Linux сделать файл исполняемым?

Это можно сделать, выполнив следующие действия:

  1. Откройте терминал.
  2. Перейдите в папку, в которой хранится исполняемый файл.
  3. Введите следующую команду: для любого. bin файл: sudo chmod + x filename.bin. для любого файла .run: sudo chmod + x filename.run.
  4. При запросе введите требуемый пароль и нажмите Enter.

Как мне вывести список файлов в Linux?

15 основных примеров команд ls в Linux

  1. Вывести список файлов с помощью ls без опции. …
  2. 2 Список файлов с опцией –l. …
  3. Просмотр скрытых файлов. …
  4. Список файлов в удобочитаемом формате с параметром -lh. …
  5. Список файлов и каталогов с символом ‘/’ в конце. …
  6. Список файлов в обратном порядке. …
  7. Рекурсивный список подкаталогов. …
  8. Обратный порядок вывода.

Кому принадлежит Linux?

Кому «принадлежит» Linux? Благодаря лицензированию с открытым исходным кодом Linux доступен всем бесплатно. Однако торговая марка «Linux» принадлежит его создателю Линусу Торвальдсу. Исходный код Linux защищен авторскими правами многих отдельных авторов и находится под лицензией GPLv2.

Contents

  1. Understanding and Using File Permissions
  2. Folder/Directory Permissions
  3. Permissions in Action
  4. Changing Permissions

    1. chmod with Letters
    2. chmod with Numbers
    3. chmod with sudo
  5. Recursive Permission Changes

    1. Recursive chmod with -R and sudo
    2. Recursive chmod using find, pipemill, and sudo
  6. Warning with Recursive chmod
  7. Changing the File Owner and Group
  8. Volume Permissions with umask
  9. ACL (Access Control List)

    1. Setting up ACL
    2. Example Usage
    3. GUI ACL Editor
    4. Useful ACL Resources
  10. File removal
  11. Sticky Bit
  12. See also
  13. ToDo

Understanding and Using File Permissions

In Linux and Unix, everything is a file. Directories are files, files are files and devices are files. Devices are usually referred to as a node; however, they are still files. All of the files on a system have permissions that allow or prevent others from viewing, modifying or executing. If the file is of type Directory then it restricts different actions than files and device nodes. The super user «root» has the ability to access any file on the system. Each file has access restrictions with permissions, user restrictions with owner/group association. Permissions are referred to as bits.

To change or edit files that are owned by root, sudo must be used — please see RootSudo for details.

If the owner read & execute bit are on, then the permissions are:

-r-x------

There are three types of access restrictions:

Permission

Action

chmod option

read

(view)

r or 4

write

(edit)

w or 2

execute

(execute)

x or 1

There are also three types of user restrictions:

User

ls output

owner

-rwx——

group

—-rwx—

other

——-rwx

Note: The restriction type scope is not inheritable: the file owner will be unaffected by restrictions set for his group or everybody else.

Folder/Directory Permissions

Directories have directory permissions. The directory permissions restrict different actions than with files or device nodes.

Permission

Action

chmod option

read

(view contents, i.e. ls command)

r or 4

write

(create or remove files from dir)

w or 2

execute

(cd into directory)

x or 1

  • read restricts or allows viewing the directories contents, i.e. ls command

  • write restricts or allows creating new files or deleting files in the directory. (Caution: write access for a directory allows deleting of files in the directory even if the user does not have write permissions for the file!)

  • execute restricts or allows changing into the directory, i.e. cd command

Info <!> Folders (directories) must have ‘execute’ permissions set (x or 1), or folders (directories) will NOT FUNCTION as folders (directories) and WILL DISAPPEAR from view in the file browser (Nautilus).

Permissions in Action

user@host:/home/user$ ls -l /etc/hosts
-rw-r--r--  1 root root 288 2005-11-13 19:24 /etc/hosts
user@host:/home/user$

Using the example above we have the file «/etc/hosts» which is owned by the user root and belongs to the root group.

What are the permissions from the above /etc/hosts ls output?

-rw-r--r--

owner = Read & Write (rw-)
group = Read (r--)
other = Read (r--)

Changing Permissions

The command to use when modifying permissions is chmod. There are two ways to modify permissions, with numbers or with letters. Using letters is easier to understand for most people. When modifying permissions be careful not to create security problems. Some files are configured to have very restrictive permissions to prevent unauthorized access. For example, the /etc/shadow file (file that stores all local user passwords) does not have permissions for regular users to read or otherwise access.

user@host:/home/user# ls -l /etc/shadow
-rw-r-----  1 root shadow 869 2005-11-08 13:16 /etc/shadow
user@host:/home/user#

Permissions:
owner = Read & Write (rw-)
group = Read (r--)
other = None (---)

Ownership:
owner = root
group = shadow

chmod with Letters

Usage: chmod {options} filename

Options

Definition

u

owner

g

group

o

other

a

all (same as ugo)

x

execute

w

write

r

read

+

add permission

remove permission

=

set permission

Here are a few examples of chmod usage with letters (try these out on your system).

First create some empty files:

user@host:/home/user$ touch file1 file2 file3 file4
user@host:/home/user$ ls -l
total 0
-rw-r--r--  1 user user 0 Nov 19 20:13 file1
-rw-r--r--  1 user user 0 Nov 19 20:13 file2
-rw-r--r--  1 user user 0 Nov 19 20:13 file3
-rw-r--r--  1 user user 0 Nov 19 20:13 file4

Add owner execute bit:

user@host:/home/user$ chmod u+x file1
user@host:/home/user$ ls -l file1
-rwxr--r--  1 user user 0 Nov 19 20:13 file1

Add other write & execute bit:

user@host:/home/user$ chmod o+wx file2
user@host:/home/user$ ls -l file2
-rw-r--rwx  1 user user 0 Nov 19 20:13 file2

Remove group read bit:

user@host:/home/user$ chmod g-r file3
user@host:/home/user$ ls -l file3
-rw----r--  1 user user 0 Nov 19 20:13 file3

Add read, write and execute to everyone:

user@host:/home/user$ chmod ugo+rwx file4
user@host:/home/user$ ls -l file4
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file4
user@host:/home/user$

chmod with Numbers

Usage: chmod {options} filename

Options

Definition

#—

owner

-#-

group

—#

other

1

execute

2

write

4

read

Owner, Group and Other is represented by three numbers. To get the value for the options determine the type of access needed for the file then add.

For example if you want a file that has -rw-rw-rwx permissions you will use the following:

Owner

Group

Other

read & write

read & write

read, write & execute

4+2=6

4+2=6

4+2+1=7

user@host:/home/user$ chmod 667 filename

Another example if you want a file that has —w-r-x—x permissions you will use the following:

Owner

Group

Other

write

read & execute

execute

2

4+1=5

1

user@host:/home/user$ chmod 251 filename

Here are a few examples of chmod usage with numbers (try these out on your system).

First create some empty files:

user@host:/home/user$ touch file1 file2 file3 file4
user@host:/home/user$ ls -l
total 0
-rw-r--r--  1 user user 0 Nov 19 20:13 file1
-rw-r--r--  1 user user 0 Nov 19 20:13 file2
-rw-r--r--  1 user user 0 Nov 19 20:13 file3
-rw-r--r--  1 user user 0 Nov 19 20:13 file4

Add owner execute bit:

user@host:/home/user$ chmod 744 file1
user@host:/home/user$ ls -l file1
-rwxr--r--  1 user user 0 Nov 19 20:13 file1

Add other write & execute bit:

user@host:/home/user$ chmod 647 file2
user@host:/home/user$ ls -l file2
-rw-r--rwx  1 user user 0 Nov 19 20:13 file2

Remove group read bit:

user@host:/home/user$ chmod 604 file3
user@host:/home/user$ ls -l file3
-rw----r--  1 user user 0 Nov 19 20:13 file3

Add read, write and execute to everyone:

user@host:/home/user$ chmod 777 file4
user@host:/home/user$ ls -l file4
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file4
user@host:/home/user$

chmod with sudo

Changing permissions on files that you do not have ownership of: (Note that changing permissions the wrong way on the wrong files can quickly mess up your system a great deal! Please be careful when using sudo!)

user@host:/home/user$ ls -l /usr/local/bin/somefile
-rw-r--r--  1 root root 550 2005-11-13 19:45 /usr/local/bin/somefile
user@host:/home/user$

user@host:/home/user$ sudo chmod o+x /usr/local/bin/somefile

user@host:/home/user$ ls -l /usr/local/bin/somefile
-rw-r--r-x  1 root root 550 2005-11-13 19:45 /usr/local/bin/somefile
user@host:/home/user$

Recursive Permission Changes

To change the permissions of multiple files and directories with one command. Please note the warning in the chmod with sudo section and the Warning with Recursive chmod section.

Recursive chmod with -R and sudo

To change all the permissions of each file and folder under a specified directory at once, use sudo chmod with -R

user@host:/home/user$ sudo chmod 777 -R /path/to/someDirectory
user@host:/home/user$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

Recursive chmod using find, pipemill, and sudo

To assign reasonably secure permissions to files and folders/directories, it’s common to give files a permission of 644, and directories a 755 permission, since chmod -R assigns to both. Use sudo, the find command, and a pipemill to chmod as in the following examples.

To change permission of only files under a specified directory.

user@host:/home/user$ sudo find /path/to/someDirectory -type f -print0 | xargs -0 sudo chmod 644
user@host:/home/user$ ls -l
total 3
-rw-r--r--  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rw-r--r--  1 user user 0 Nov 19 20:13 file2

To change permission of only directories under a specified directory (including that directory):

user@host:/home/user$ sudo find /path/to/someDirectory -type d -print0 | xargs -0 sudo chmod 755 
user@host:/home/user$ ls -l
total 3
-rw-r--r--  1 user user 0 Nov 19 20:13 file1
drwxr-xr-x  2 user user 4096 Nov 19 20:13 folder
-rw-r--r--  1 user user 0 Nov 19 20:13 file2

Warning with Recursive chmod

WARNING: Although it’s been said, it’s worth mentioning in context of a gotcha typo. Please note, Recursively deleting or chown-ing files are extremely dangerous. You will not be the first, nor the last, person to add one too many spaces into the command. This example will hose your system:

user@host:/home/user$ sudo chmod -R / home/john/Desktop/tempfiles

Note the space between the first / and home.

You have been warned.

Changing the File Owner and Group

A file’s owner can be changed using the chown command. For example, to change the foobar file’s owner to tux:

user@host:/home/user$ sudo chown tux foobar

To change the foobar file’s group to penguins, you could use either chgrp or chown with special syntax:

user@host:/home/user$ sudo chgrp penguins foobar
user@host:/home/user$ sudo chown :penguins foobar

Finally, to change the foobar file’s owner to tux and the group to penguins with a single command, the syntax would be:

user@host:/home/user$ sudo chown tux:penguins foobar

Info <!> Note that, by default, you must use sudo to change a file’s owner or group.

Volume Permissions with umask

This section has been moved to: Fstab#Options

ACL (Access Control List)

Posix ACLs are a way of achieving a finer granularity of permissions than is possible with the standard Unix file permissions. See the full page on ACLs FilePermissionsACLs

Setting up ACL

  1. Install the acl package:
sudo apt-get install acl
  1. Edit /etc/fstab and add option acl to partition(s) on which you want to enable ACL. For example:

...
UUID=d027a8eb-e234-1c9f-aef1-43a7dd9a2345 /home    ext4   defaults,acl   0   2
...
  1. Remount partition(s) on which you want to enable ACL. For example:
sudo mount -o remount /home
  1. Verify acl is enabled on the partition(s):

mount | grep acl

The commands, setfacl and getfacl, set and read ACLs on files and directories.

Example Usage

This is a simple example for use with a Samba share to ensure that any files or sub-directories created could also be modified by any Samba user.

  1. Create a directory with full permission:
mkdir shared_dir
chmod 777 shared_dir
  1. Set the default ACL with ‘-d’ and modify with ‘-m’ the permissions for samba nobody user nogroup group which will apply to all newly created file/directories.

setfacl -d -m u:nobody:rwx,g:nogroup:rwx,o::r-x shared_dir

GUI ACL Editor

The Eicielhttp://apt.ubuntu.com/p/eiciel package allows GUI access to ACLs through the Nautilus file manager.

Useful ACL Resources

  • http://brunogirin.blogspot.com/2010/03/shared-folders-in-ubuntu-with-setgid.html

  • http://wiki.kaspersandberg.com/doku.php?id=howtos:acl

  • man acl

  • man setfacl

  • man getfacl

File removal

To remove a file you cannot delete use

sudo rm -rf filename

where filename is the name and path of the file to delete.

Nota bene: Be very careful when using the command rm with the -rf option since -r makes the file removal recursive (meaning it will remove files inside of folders) and -f will force the removal even for files which aren’t writable. To play it safe, please consider typing in the absolute path to the file

sudo rm -rf /path/to/file/filename

to prevent any mishaps that can/will occur. It takes longer to type but you can’t put a price on peace of mind. See the rm man page for details.

Sticky Bit

The sticky bit applies only to directories, and is typically used on publicly-writeable directories. Within a directory upon which the sticky bit is applied, users are prevented from deleting or renaming any files that they do not personally own.

To add or remove the sticky bit, use chmod with the «t» flag:

chmod +t <directory>
chmod -t <directory>

The status of the sticky bit is shown in the other execute field, when viewing the long output of ls. «t» or «T» in the other execute field indicates the sticky bit is set, anything else indicates it is not.

Making a public directory:

user@host:/home/user$ mkdir folder
user@host:/home/user$ chmod 777 folder
user@host:/home/user$ ls -l
total 3
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder

Adding the sticky bit (note the «t» in the other execute field):

user@host:/home/user$ chmod +t folder
user@host:/home/user$ ls -l
total 3
drwxrwxrwt  2 user user 4096 Nov 19 20:13 folder

See also

  • man chmod

  • man chown

  • man chgrp

  • FindingFiles

  • User Private Groups


ToDo

  • umask (add file and directory umask section, with specific focus on security)
  • The User Private Group scheme. In other words, this page does the nuts and bolts ok, but we need to describe what the permissions should be. The default Ubuntu set up is not agnostic: Every user has their default private group. Directories for collaboration need to have special group and permission set for correct functioning.

  • * Suggestion: I often use find instead of chmod -R, because it’s easier to differentiate between files and directories that way. Yes, I know about the ‘X’ permission, but I don’t trust it.

  • The sticky bit. It’s needed for «other» in shared directories like /tmp. It’s needed for «group» in shared directories where write permission is given to a group, like /var/www

Команда chown позволяет вам изменить пользователя и / или группу, владеющую данным файлом, каталогом или символической ссылкой.

В Linux все файлы связаны с владельцем и группой и им назначаются права доступа для владельца файла, членов группы и других.

В этом руководстве мы покажем вам, как использовать команду chown на практических примерах.

Как использовать chown

Прежде чем перейти к использованию команды chown , давайте начнем с обзора основного синтаксиса.

Выражения команды chown имеют следующую форму:

chown [OPTIONS] USER[:GROUP] FILE(s)

USER — это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP — это имя новой группы или идентификатор группы (GID). FILE(s) — это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны начинаться с символа + .

  • USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, принадлежность группы не изменится.
  • USER: — Если после имени пользователя ставится двоеточие : и имя группы не указано, пользователь становится владельцем файлов, а права собственности группы файлов изменяются на группу входа пользователя.
  • USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности на группу изменяется на данную группу.
  • :GROUP — Если пользователь не указан, а группа имеет префикс двоеточия : то для данной группы изменяется только групповое владение файлами.
  • : Если указано только двоеточие : без указания пользователя и группы, никаких изменений не производится.

По умолчанию в случае успеха chown не производит никакого вывода и возвращает ноль.

Используйте команду ls -l чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:

ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr  8 20:51 filename.txt
|[-][-][-]-   [------] [---]
                |       |
                |       +-----------> Group
                +-------------------> Owner

Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.

Как изменить владельца файла

Чтобы изменить владельца файла, используйте команду chown за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:

Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :

chown linuxize file1

Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1 и каталога dir1 на нового владельца с именем linuxize :

chown linuxize file1 dir1

Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2 новому владельцу с UID 1000 :

chown 1000 file2

Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с + :

chown 1000 file2

Как изменить владельца и группу файла

Для того, чтобы изменить владельца и группу с использованием файловом chown команды следуют новым владельцем и группой , разделенных двоеточием ( : ) без пробелов и целевого файла.

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и сгруппирует users :

chown linuxize:users file1

Если опустить имя группы после двоеточия ( : ) группа файла изменяется на указанного пользователя группы входа в систему :

chown linuxize: file1

Как изменить группу файла

Чтобы изменить только группу с использованием файловом chown команды , за которым следует двоеточие ( : ) и новое название группы (без пробела между ними) и целевого файла в качестве аргумента:

Следующая команда изменит группу владельцев файла с именем file1 на www-data :

chown :www-data file1

Еще одна команда, которую вы можете использовать для изменения группового владения файлами, — это chgrp .

Как изменить право собственности на символические ссылки

Когда рекурсивная опция не используется, команда chown изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символические ссылки .

Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1 которая указывает на /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:

chown www-data: symlink1

Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».

Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.

Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h :

chown -h www-data symlink1

Как рекурсивно изменить право собственности на файл

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( --recursive ):

chown -R USER:GROUP DIRECTORY

В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www новому владельцу и группе с именем www-data :

chown -R www-data: /var/www

Если каталог содержит символические ссылки, передайте параметр -h :

chown -hR www-data: /var/www

Другие параметры, которые можно использовать при рекурсивном изменении владельца каталога, — это -H и -L .

Если аргумент, переданный команде chown является символической ссылкой, указывающей на каталог, опция -H заставит команду пройти по нему. -L указывает chown по каждой символической ссылке на обнаруженный каталог. Обычно вы не должны использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.

Использование справочного файла

Параметр --reference=ref_file позволяет вам изменить права собственности пользователя и группы на данные файлы, чтобы они были такими же, как у указанного справочного файла ( ref_file ). Если справочный файл является символической ссылкой, chown будет использовать пользователя и группу целевого файла.

chown --reference=REF_FILE FILE

Например, следующая команда назначит пользователю и группе владение file1 для file2

chown --reference=file1 file2

Выводы

chown — это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.

Чтобы узнать больше о команде chown посетите страницу руководства chown или введите man chown в своем терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Понравилась статья? Поделить с друзьями:
  • Как изменить владельца гугл документа
  • Как изменить владельца группы телеграмм
  • Как изменить владельца базы данных postgresql
  • Как изменить владельца базы данных ms sql
  • Как изменить владельца автомобиля через госуслуги