Как изменить разрешение накопителя на внешнем жестком диске?

У меня был старый ноутбук. Когда он получил жалобу, я вынул его жесткий диск и начал использовать его в качестве внешнего жесткого диска. Он имеет 80 ГБ памяти, выделенной для раздела диска Windows C. Но теперь мне больше не нужен этот раздел. Но проблема в том, что я не могу получить доступ к этому диску, чтобы вставить в него файлы. Как я могу сделать разрешение на чтение и запись на этот диск с помощью терминала?

3 ответа

Решение

Если вы хотите получить право собственности на диск, вы можете использовать команду chown:

sudo chown -R username:username /media/username/nameofdrive

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

Вы также можете использовать -R делать chmod также рекурсивный.

1. Нормальная техника для файлов НА внешнем диске, но правильная техника для файлов, которые вы только что скопировали на свой компьютер С внешнего диска

Это работает: рекурсивно ( -R) измените (часть перед двоеточием) и (часть после двоеточия :) на ваше имя пользователя:

      sudo chown -R username:username /media/username/nameofdrive

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

      usermod -a -G groupname

НО, если имя группы не существует в одной системе и отображается просто как число, например 5000, когда вы смотрите на него с ll( ls -alF), то вы не сможете легко добавить себя в ту же группу, потому что usermod -a -G 5000выдает эту ошибку:

      $ usermod -a -G 5000
usermod: group '5000' does not exist

2. Иногда лучше для файлов НА внешнем диске

Итак, это приводит нас к следующему решению: просто дайте полные права доступа к этим файлам всем:

      sudo chmod -R 777 /media/username/nameofdrive

НО, это также помечает ВСЕ файлы как исполняемые, что на самом деле не имеет смысла. Вы не хотите произвольно помечать каждый файл как исполняемый, так как это может представлять угрозу безопасности, а также раздражать, когда каждый раз, когда вы дважды щелкаете текстовый файл, чтобы открыть и отредактировать его, он спрашивает вас, хотите ли вы чтобы запустить/выполнить его.

3. Еще лучше № 1 (или лучше, если вам ДЕЙСТВИТЕЛЬНО нужны права на запись для всех) для файлов на внешнем диске.

Итак, это подводит меня к моей рекомендации: дайте полные разрешения всем ( -a, или 'a'll), а только установить исполняемый бит (т.е. использовать +X, НЕТ +x), если это либо каталог, либо уже установлен для одного или нескольких «пользователей», «групп» или «других», например:

      sudo chmod -R a+rwX /media/username/nameofdrive

man chmodговорит о столице Xпротив нижнего регистра xвариант:

...выполнять/искать, только если файл является каталогом или уже имеет разрешение на выполнение для какого-либо пользователя (X),...

4. Еще лучше № 2 (или лучше, если вам НЕ нужны права на запись для всех, т.е. если чтения достаточно) для файлов НА внешнем диске

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

      sudo chmod -R a+rX /media/username/nameofdrive

Затем примените разрешения -R a+rwXтолько ПОСЛЕ копирования файлов на локальный компьютер с внешнего диска:

      cp -r /media/username/nameofdrive/some_dir ~/some_local_path
# Now add `w`rite for everyone
sudo chmod -R a+rwX ~/some_local_path
# OR (even better!): just make yourself the owner now that it's on your local drive:
sudo chown -R username:username ~/some_local_path

Использованная литература:

  1. https://superuser.com/questions/454795/how-can-i-do-a-recursive-chmod-only-on-directories/454807#454807
  2. [мой репозиторий/файл: выполните поиск в этом файле, чтобы найти кучу моих личных chmodпримеры здесь] eRCaGuy_dotfiles/git и команды Linux, помощь, советы и рекомендации - Gabriel.txt

Связанный

  1. [мой ответ] https://superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264

Диски будут расположены в /media/username папка. Перейдите в этот каталог с помощью команды cd. А потом на терминал

sudo chmod 777 nameofdrive

777 назначает права на чтение, запись и выполнение всем пользователям.

Другие вопросы по тегам