Chmod linux не работает

Ужасная ошибка с chmod?

Хотел выставить для папки рекурсивно права 644 и ввел команду chmod -R 644 /.

Спохватился поздно, но выполнение команды прервал.

Посоветуйте, как минимизировать ущерб. И реально ли восстановить систему. Или теперь придется ставить с нуля?

Оценить 5 комментариев

У меня все еще запущен mc. Поставил права на запуск для приложений из bin, но команды все равно выдают permission denied, хотя chmod нормальный. Что еще может мешать запуску (chmod какого файла)?

На bin — да. Но на корень — нет. Через mc нельзя выбрать корень насколько я понимаю. Если на корень нет прав выполнения, то вложенные команды выполняться тоже не будут?

можно изловчиться в mc
C-x s — создать символическую ссылку /zzz на /
C-x c — установить права на эту ссылку, тем самым на корень

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

Ух, знатный выстрел в собственную ногу.
Я бы загрузился с livecd, скопировал конфиги/данные и переустановил бы ОС. Все остальные варианты не дадут 100% уверенности, а нафиг нужен сервер с кучей скелетов в шкафу.

я раз дал 777 всей системе… тогда тоже ничего больше не работало 🙂

грузимся в «сингл моде» и мы можем выполнять любые команды для восстановления прав

Ммм… Иногда rm -rf / помогает, но не уверен, что в этом случае спасёт, тут всё запущено уже давно и глубоко…

Я попробовал. Говорит «rm: невозможно удалить корневой каталог «/»». У меня Ubuntu 10.04. Это баг или фича?

Знаете, любой может опечататься. Отвлекся после тяжелого дня. И теперь я не знаю как исправить ситуацию.

Опечататься легко, достаточно точку пропустить. Сам так ошибался, но правда с chown и был доступ к Recovery Mode.

Скопировать нормальный chmod через scp -p /bin/chmod user@hostname: , затем /home/user/chmod +x /bin/* не получается? (Вместо «user», конечно, правильное имя поставить надо.)

Все команды выдают permission denied. При этом у меня все еще запущен mc и я могу вводить команду. Поставил права на запуск для приложений из bin, но команды все равно выдают permission denied, хотя chmod нормальный.

Ничего не работает. Все команды выдает ошибку доступа. Все что пока работает (пока не разорвалась сессия) — mc (и соответственно доступные в нем внутренние команды).

если бы это была gentoo, я бы восстановил build environment и пересобрал мир.
соотвественно можно попробовать сделать нечто похожее и в бинарном дистрибутиве, сгенерировав список пакетов установленных в системе и накатить эти пакеты заного с флагом force или что-то вроде, при этом не забыв сказать, что конфиги не трогать.
это общие соображения.
частное решение будет зависеть от конкретного дистрибутива пакетного менеджера и здравого смысла.
здравый смысл заключается в том, что если не хочется потом еще в течении n-ного времени вычищать
подземные стуки, а они будут, нужно переставить систему с нуля.

Читайте также:  Linux ip command set gateway

Но конфиги-то тогда у человека все рано слетят? Не говоря уж о том, что build environment — тоже, поди, команда?
А у него ни одна команда не работает.

Ну у вас ежели mc запущен, то выставьте 755 на содержимое /lib, /usr/lib и /bin, должно хватать для запуска chmod

Источник

chmod -R 777 / или почему ничего не работает

Права доступа в Linux это первое с чем приходится знакомиться каждому новому пользователю и не все гайды дают полную картину происходящих в системе процессов.

Предисловие

На Хабре уже есть замечательная статья о правах доступа, здесь же я хотел описать то , что произойдет в вашей системе после

Основная часть

Для новичка может показаться что задавая и возвращая права обратно никакого ущерба системе нанести не получится, ведь мы все вернули как было. Итак с полной уверенностью в своих действия мы вводим команду и присваиваем все права всем файлам в системе. Что может пойти не так?

1. Мы навсегда распрощались с безопасностью

Чтож, это был осознанный риск и вопрос безопасности нас мало волновал останется ли система работоспособной?

2. Первая вереница ошибок

Команды sudo, sendmail и ряд других просто перестанут работать. Суть в том что эти команды проверяют разрешения ключевых файлов, видят что они отличаются от ожидаемых и выдают ошибку.

3. 777 на самом деле 0 777

Старший бит это биты setuid и setgid. Они необходимы для запуска файлов с определенными привелегиями. Теперь этот бит 0 , а это несомненно приведет к бесчисленному количеству ошибок.

4. /tmp и /var/tmp серьезно пострадали

В правах доступа есть sticky bit он защищает файлы от удаления людьми не владеющими ими. Это необходимо, т.к. некоторые скрипты очищают директории /tmp и без установленного sticky bit мы распрощаемся со всеми файлами в этом каталоге.

5. Теперь каждый файл в вашей системе исполняемый.

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

А можно ли починить систему?

Теоретически да, но скорее в учебных целях. Если нам нужна полноценно и безотказно работающая система самым рациональным выходом будет полная переустановка, или откат на существующий backup. Таким образом неосторожное обращение с ,казалось бы, известной нам командой может привести к большому количеству проблем.

Источник

How to fix permission denied error in Linux? [Solutions]

When you are working with the Linux Operating system then a common error occurs i.e. permission denied, In this article, you will get to know about how to ‘permission denied’ error in Linux?[linux permissions denied]

Читайте также:  Command shutdown linux server

How to fix permission denied error in Linux? [Solutions]

List of content you will read in this article:

In the Linux operating system, you cannot execute any command without proper permission. Every file and directory has some permission or privilege (read, write, or execute) associated with them. If you are not authorized to access the file or directory, executing any command on that will result as a “permission denied” error in Linux. This prevalent common can only be resolved by getting the proper access to that file and directory. In this article, we will help you with how to fix the permission denied errors in Linux and what type of error this is with the help of various Linux commands.

What is Linux Permission Denied Error?

This type of error will occur whenever you run a command for which you do not have the execute permission. Similarly, you cannot perform read or write actions if you do not have read or write permission for any file or directory. These Linux permissions are the primary reason behind the security of Linux, as they will help in protecting the data from unauthorized access.

Linux system has three types of permissions

So, if you want to solve a Linux permission denied error, you can check your privileges for the specific file or folder using the following command.

This command will display the long listing of all files and folders along with the permission, as shown below.

As shown below, we have created a shell script “hello.sh” without the execute permission. On executing “hello.sh”, you will get a “permission denied” error.

How To Fix Permission Denied Error in Linux?

For solving this error, you need to add the correct permissions to the file to execute. However, you need to be a “root” user or have sudo access for changing the permission. For changing the permission, Linux offers a chmod command. The chmod stands for change mod. This command has a simple syntax, as shown below.

chmod flags permissions filename
  • Flags are the additional options that users can set.
  • Permissions can either be read, write or execute in the file. You can represent them in symbolic form (r, w, and x) or octal numbers.
  • The Filename specifies the file’s name for changing the permissions.

Representation of permissions

Below is the symbolic and octal representation of the user’s permissions while executing the “chmod” command. First, we will understand the representation before using it.

Symbolic representation

  • r specifies the read permissions
  • w specifies the write permissions
  • x specifies the execute permissions
  • Octal representation-
  • 4 specifies the read permissions
  • 2 specifies the write permissions
  • 1 specifies the execute permissions
  • 0 means no permissions issued.

How to Solve Bash Permission Denied?

Now, we are aware of the error, as shown below.

Giving the appropriate permission to the user will solve the problem. Thus, we are giving the execute permission to the user to run the “hello.sh” shell script. Execute the below command to provide execute permission.

Читайте также:  Default home directory in linux

Now, we can see the change in the permission of the “hello.sh” script file. The above command provides the execute permission to the file. As you can see, the root user can make the required changes. If we execute the shell script, we should not get the error. Let’s try by running the below command.

After executing the “hello.sh”, we get the output that displays the “hello.” Changing permission has solved the problem of bash permission denied.

Conclusion

If you are a regular Linux user, you might have faced the “permission denied” error while executing various commands. This might be due to the incorrect privileges to run that command. Only a root user or user with sudo access can change the permissions for the file or directory you want to access or execute. If you are the correct user to make the required permission changes, you can run the “chmod” command and add the desired permission.

This is all about how you can solve/fix permission denied errors in Linux with the help of the above-listed commands/methods. If you think there are other alternatives to achieve the goal, you can put them down via the comment box. Also, you can buy a Linux VPS server to run and test the above-listed commands.

Источник

Странно работает chmod

Сначала прошёлся chown username /home/username -R , а затем решил поменять права в директории ~/books . Вместо того, чтобы спокойно поменять права, chmod стал ругаться на права доступа chmod: cannot access books/Math: Permission denied , а потом оказалось, что он вообще всё поломал:

ls -l books //. . ? ? ? ? ? agda_tutorial.pdf //. 

Что это может быть? Проблема с chmod или ФС?

Отмонтируй ФС и проверь, chmod такого делать не должен. Давай сразу uname -a и xfs_db -r /dev/sd?? -c sb -c p .

[~] uname -a Linux HPdv6 3.19.3-pf #1 SMP PREEMPT Fri Mar 27 12:29:06 MSK 2015 x86_64 GNU/Linux 
[~] sudo xfs_db -r /dev/dm-4 -c sb -c p magicnum = 0x58465342 blocksize = 4096 dblocks = 124222464 rblocks = 0 rextents = 0 uuid = 2958f95e-79bc-458a-94eb-4986221f8687 logstart = 67108871 rootino = 192 rbmino = 193 rsumino = 194 rextsize = 1 agblocks = 31055616 agcount = 4 rbmblocks = 0 logblocks = 60655 versionnum = 0xbcb4 sectsize = 4096 inodesize = 256 inopblock = 16 fname = "media\000\000\000\000\000\000\000" blocklog = 12 sectlog = 12 inodelog = 8 inopblog = 4 agblklog = 25 rextslog = 0 inprogress = 0 imax_pct = 25 icount = 523968 ifree = 168 fdblocks = 14567077 frextents = 0 uquotino = 0 gquotino = null qflags = 0 flags = 0 shared_vn = 0 inoalignmt = 2 unit = 0 width = 0 dirblklog = 0 logsectlog = 12 logsectsize = 4096 logsunit = 4096 features2 = 0x8a bad_features2 = 0x8a features_compat = 0 features_ro_compat = 0 features_incompat = 0 features_log_incompat = 0 crc = 0 (unchecked) pquotino = 0 lsn = 0 

С виду норм. Запусти xfs_repair -n на отмонтированном устройстве. С ключом -n ничего чинить не станет, но ошибки, если есть, покажет.

sudo chmod username.username -Rvf /home/username/books даже не пробовал?

xfs_repair -n никаких сообщений об ошибках не выдал

Источник

Оцените статью
Adblock
detector