Недостаточно прав для запуска файлов с правами root
Недавно у меня были некоторые системные проблемы с Ubuntu, поэтому я переустановил систему. У меня есть два жестких диска, один используется для системы, а другой - для файлов, фильмов и т. Д. Перед переустановкой я переместил папку Teamspeak 3 со своего системного жесткого диска на другой.
Теперь, после переустановки, я не могу запустить Teamspeak 3. Я должен запустить файл ts3client_runscript.sh, чтобы запустить его, но он говорит, что у меня нет разрешения. Я посмотрел в Интернете, но я не нашел то, что может мне помочь.
Я также заметил, что многие файлы отображаются зеленым на рабочем Teamspeak 3.
Спасибо вам за помощь.:)
2 ответа
Я предполагаю, что UID (идентификатор пользователя), который был назначен вашему пользователю в предыдущей системе, отличается от новой. Попробуйте подсказку Тердона и проверьте, кому принадлежит файл (ы) на втором диске:
$ ls -l <directory>
Если это предположение верно, столбец владельца будет содержать число вместо вашего собственного имени пользователя или другое имя пользователя. Также убедитесь, что группа правильная (обычно идентична имени пользователя).
Вы можете изменить владельца на нового пользователя, используя chown
либо для одного файла, либо (пример ниже) для полного дерева каталогов:
$ sudo chown -R <username> <directory>
использование chgrp
таким же образом, чтобы изменить группу, если необходимо, или добавить имя группы в chown
:
$ sudo chown -R <username>:<groupname> <directory>
Не использовать chmod
за это! Вы испортите разрешения без решения первоначальной проблемы.
Резюме
Другой причиной ваших проблем может быть то, что раздел данных может быть смонтирован с noexec
опция монтирования в fstab.
Чтобы оценить, действительно ли это является причиной, вы должны взглянуть на две мелочи:
/etc/fstab
файл конфигурации, который содержит (почти) все разделы и другие элементы, которые должны быть подключены во время загрузки- выход
mount
/ И т.д. / Fstab
/etc/fstab
это файл конфигурации в табличном формате, который содержит разделы и другие элементы (хотя это не относится к данной проблеме), их точки монтирования и некоторые параметры, определяющие, как mount
Команда должна быть вызвана.
пример
UUID=***** / ext4 errors=remount-ro,noatime,discard 0 1
UUID=***** /boot ext2 defaults,noatime 0 2
UUID=***** /boot/efi vfat noatime,umask=0077 0 1
UUID=***** /home ext4 defaults,noatime 0 1
- Я заменил UUID для лучшей читаемости.
- Вместо UUID строка также может начинаться с имени /dev/ node; например
/dev/sda1
Посмотрите на строку, которая содержит точку монтирования, где находится ваша папка TeamSpeak3. Например, если вы поместите teampeak в /home/evgenie/, последняя строка в моем примере будет fstab.
В четвертом столбце вы найдете параметры монтирования (по умолчанию, noatime в моем случае). Если это будет означать "по умолчанию, noatime, noexec", вы запретите ВСЕ выполнения в этом разделе / точке монтирования.
команда монтирования
Теперь давайте посмотрим на вывод команды mount. Это мой пример, я отфильтровал все вещи, не относящиеся к этому примеру:
$ mount | grep /home
/dev/sdc1 on /home type ext4 (rw,noatime,data=ordered)
Это в основном так же, как в /etc/fstab
, но могут быть установлены некоторые дополнительные параметры - например, "data = order".
Если вы нашли noexec
там...
... открыть свой /etc/fstab
в редакторе как root (например sudo nano /etc/fstab
) и удалите его.
Это имеет некоторые последствия для безопасности, хотя:noexec
запрещает выполнять скрипты или двоичные файлы из этого раздела. Это может иметь значение в зависимости от того, могут ли и как другие могут использовать эту систему.