Как ввести каталог с командой «cd», если у него есть разрешение 700 и не принадлежит мне?

Лицензирование программного обеспечения пакетов Ubuntu - это одно, и здесь проблем нет. Другой - права интеллектуальной собственности Canonical, компании за Ubuntu. Я предполагаю, что вы захотите не только установить Ubuntu на этих компьютерах, но также разместить некоторые логотипы или рекламу для него.

Затем вы связаны с политикой интеллектуальной собственности Canonical, которая может быть найдена в http://www.canonical.com/intellectual-property-policy. Кроме того, рекомендации по использованию логотипа Ubuntu по адресу http://design.ubuntu.com/brand/ubuntu-logo могут представлять интерес, с ссылкой для загрузки внизу.

1
задан 11 December 2017 в 03:03

6 ответов

sudo -i

, чтобы открыть «корневую консоль», а затем

cd /path/to/directory

(cd - встроенная команда оболочки, поэтому не может быть целью sudo)

28
ответ дан 25 May 2018 в 19:15

Чтобы открыть корневой каталог, мы можем запустить корневую оболочку, например ::!!d0]

sudo su
# cd /root
15
ответ дан 25 May 2018 в 19:15
  • 1
    Я не хотел бы работать как корень. НИКОГДА!!! А также эксперты рекомендуют никогда не входить в систему как корень. -1 – Bakhtiyor 19 August 2011 в 16:10
  • 2
    Ну, именно поэтому вы не хотите разрешать открывать каталоги root, не так ли? – Takkat 19 August 2011 в 16:12
  • 3
    В корневом режиме нет ничего плохого. Эксперты всегда будут рекомендовать входить в корне, когда он будет включен. – Rinzwind 19 August 2011 в 16:15
  • 4
    Эксперты? Никогда не видел эксперта, рекомендующего такую ​​глупую вещь ... Единственное, что не рекомендуется, - это войти в графический интерфейс как root (а это также невозможно в Ubuntu). – Vojtech Trefny 19 August 2011 в 16:16
  • 5
    Если вы работаете с вещами, принадлежащими root, иногда sudo su ing (или другой метод) является единственным практичным или даже возможным методом. & Quot; Специалисты & Quot; только скажите, чтобы вы не использовали root как привычку - это нормально, когда вам это действительно нужно. И @ Войтех, ничего невозможного ... – Oli♦ 19 August 2011 в 17:21

Как указывали другие - это встроенная оболочка:

~ % which cd
cd: shell built-in command

Итак, почему бы вам не использовать оболочку сама?

~ % sudo $SHELL -c "cd name_of_dir"
6
ответ дан 25 May 2018 в 19:15
  • 1
    +1 для идеи sudo bash -c ... и предложения: избегайте использования which. Это просто сценарий, и он не будет обрабатывать все возможности (двоичные, встроенные, псевдонимы и т. Д.). Вместо этого используйте type. Гораздо безопаснее, мощнее и портативнее. И type -p для пути исполняемого файла. – MestreLion 20 August 2011 в 04:44
  • 2
    Ну, зависит ;-) type [ -wfpams ] name ... Equivalent to whence -v., which [ -wpams ] name ... Equivalent to whence -c. (man zshbuiltins) – Daniel Bauke 20 August 2011 в 19:08
  • 3
    От него зависит , а не . whence - zsh - только ... он работает не в bash, он даже не установлен по умолчанию в ubuntu. Хотя type является POSIX , то есть он будет работать в любой современной оболочке ... bash, csh, ksh .. и даже zsh. – MestreLion 21 August 2011 в 21:35
  • 4
    Несомненно, это так, и именно поэтому я подтвердил ваш комментарий только тогда, когда он появился, но я считаю, что в zsh на самом деле это не скрипт и дает аналогичные результаты, как type, поскольку оба являются псевдонимами для одной и той же команды. – Daniel Bauke 22 August 2011 в 01:26
  • 5
    О, теперь я понимаю. Ну, но это в zsh. В bash, который является оболочкой терминала по умолчанию (и обычно только) в Ubuntu, which не является встроенным ... поэтому type (или type -p) является предпочтительным. – MestreLion 23 August 2011 в 09:34

Вы также можете поднять себя на пользователя root:

sudo -s

Затем вы можете записывать cd в любой каталог, который не позволяет обычным пользователям:

cd /root

Или

cd /var/lib/

Затем после того, как вы закончите, введите:

exit

Чтобы выйти из привилегий пользователя root.

Для поднятия себя как root, вы также можете комбинировать две команды с помощью оператора &&, как показано ниже, этот оператор также поддерживает свою последовательность выполнения, если текущая команда выполняется успешно, и только тогда следующая команда разрешена:

sudo -s && cd /var/lib
[d6 ] Или

sudo -s && cd /root
3
ответ дан 25 May 2018 в 19:15

если вы действительно хотите сделать [F4] для работы, можно определить [ф5] функция Shell называется [ф6], что запускает новый корневой оболочки, когда бежишь, и просто беги [ф7] команды иначе.

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

запустить нажать [F8] и [F9] и если вы хотите войти оболочку (помните, что одним из последствий [F10] для того, чтобы начать вы в корень домашней директории), или на [F11], чтобы [ф12] или быть в состоянии передать параметры оболочки. Бегите [от f13] в новой оболочке. Выполнять любые (другие) действия должны быть приняты как root в новой оболочке. После этого, запустите [ф14] оставить новую оболочку. Важно не забывать об этом, потому что Вы не хотите выполнить дополнительные действия, как корень, чем вы предполагаете!

так что, если вы хотите, то вы можете написать Шелл-функции (или скрипт), который выполняет первые два из этих действий, когда [с f15] с последующим [ф16], и только [f17 в] обычно иначе. Пожалуйста, не используйте это в качестве альтернативы обучения [ф18] иначе не получится, потому что если ты не понимаешь что происходит, то вы, вероятно, будет очень смущает в новую оболочку (и Вы не можете понять каких-либо сообщений об ошибках).

вот один из способов, чтобы написать такую функцию оболочки, который также напоминает вам, что вы находитесь в новой оболочке и что вы должны [зг19], когда вы закончите. (Это напоминание, скорее всего, будет полезна для пользователей не уровень мастерства, потому что никто вообще не привыкла к тому, что в новую оболочку, когда один бежит [20 фунтов] без [клавиши f21], [ф22], или имя оболочки в качестве аргумента.)

[Ф1]

Вы можете поместить это в ваш [ф23], хотя это достаточно странный способ использовать [ф24] что вам может понадобиться, чтобы иногда включить. В этом случае, лучше положить ее в свой собственный файл. Если создать файл с названием [f25 привод датчика] в вашем домашнем каталоге с содержимым, то вы можете сделать функцию [ф26] доступно-так, что он будет работать вместо обычного sudo команда--бег [ф28]. Что вступает в силу в текущей оболочке и ее дочерних снарядов, но не другим. По той же причине, что файлы, такие как .bashrc не исполняемый, не знаком [ф30] исполняемый с [ф31]. Это действительно библиотека, а не отдельный скрипт. Если Вы не запустить его как скрипт, он определяет функцию... но только в оболочке, который запустил скрипт, не для вас, как абонента. (Конечно, можно написать скрипт для этого, что только не случается, этот подход я взял здесь.)

, чтобы проверить и посмотреть, если [f32 из] В настоящее время определяется как функция Shell, и, чтобы увидеть его настоящее определение, если он один, запустить type sudo. Для отключения (т. е. сбросить) функцию, как только это определено, запустите unset -f sudo. Чтобы вручную запустить регулярные [ф35] команды напрямую, даже если функция Shell определяется, выполнять [f36 в]. Заметим, однако, что Вы не сделал, что эта функция [фунции f37] на самом деле это себя, когда есть более или менее двух аргументов, переданных или первый аргумент это что угодно, но cd. пожалуйста, не используйте это в качестве альтернативы обучения, почему [ф18] не получится

отметим также, что функция Shell показано выше, по-прежнему позволяют передавать другие аргументы [ф40], но которые могут помешать его лечения [ф41] специально. Работает sudo -u user cd directory, в частности, не поддерживается, хотя вы можете расширить функции Shell, чтобы поддержать это дело. Ни sudo -i cd directory. Раковины, что он создает, похоже на то, что вы получаете с [пулемет f44]. Код на самом деле не запустить [f45 с], но использует sudo bash, поэтому вариант -c работает правильно. Это на самом деле работает bash дважды, когда вы проходите cd и аргумент каталог (и не иначе). При запуске [ф50], сначала вилки выключения отдельной оболочки bash от одного вы используете функцию sudo и изменения в каталог. Если это удастся, может что bash Shell с новой, интерактивной, что можно использовать.

вот пример того, как эта функция Shell автоматически "не правильно". Обратите внимание, что sudo ls -A /root нормально ведет себя. Только потом, когда я попытка cd в каталог с sudo новый создал оболочку, и я вспоминаю четко, что происходит.

[Ф2]

если вы пытаетесь [f55, которая] в директорию, которую Вы не можете изменить даже как root, то вы просто получите сообщение об ошибке:

[Ф3]

я использовал sudo -k в между вызовами в приведенных выше примерах, чтобы показать, что он идентифицирует вас как корень , но которые могут помешать его лечения [ф41] специально пытаясь изменить каталог. Но вам не придется бегать sudo -k себя. Так как функция оболочки-это просто тонкая обертка для реальной sudo команда, кэширование учетных данных и других общих sudo поведение по-прежнему работать нормально.

, хотя он хорошо работает и это здорово, я признаю, что слежка за команду [от f60] с функция с таким же именем очень странно. Большинство пользователей, вероятно, просто хочу, чтобы выполнить шаги [ф61], cd directory сами. Но вдруг кто-нибудь захочет этого, а также чтобы продемонстрировать, что это возможно-вот он.

1
ответ дан 25 May 2018 в 19:15

Что касается обсуждения su или не su, я думаю, что это глупо. su против религии Ubuntu, и это не что-то делать небрежно. Удивительно, что делает rm -rf *, если вы root. Но если вам удобно работать с интерфейсом командной строки (CLI) и выполнять задачи системного уровня, нет причин не использовать su. Я использовал несколько дистрибутивов, о которых никто даже не упоминал, используя sudo. Речь идет только о том, какую работу вы делаете и какой метод вам больше всего нравится. Я использую оба.

0
ответ дан 25 May 2018 в 19:15
  • 1
    «В версиях bash и sudo у меня есть с kubuntu lucid, теперь sudo cd работает - без каких-либо обходных путей. " Коротко что-то вроде этого , которое Я уверен, никогда не был в Ubuntu по умолчанию, я не понимаю, как это сделать. (Кроме того, я использовал 10.04, он этого не делал.) Прошло много лет с тех пор, как вы разместили это, но помните ли вы подробности? [F3] все еще работает для вас? Каков результат работы type -a sudo в оболочке, где он работает? Я понимаю, что вы, возможно, не знаете, и вторая часть вашего ответа остается актуальной, но если вы это сделаете, вы можете отредактировать . – Eliah Kagan 11 December 2017 в 04:10
  • 2
    @EliahKagan Это определенно не работает для меня сейчас в 16.10, и я не помню, что я тогда делал. Это противоречит моей религии, чтобы изменить существующие базовые команды, так что вряд ли я это сделал. В любом случае, даже если бы это сработало, все назвали бы это плохой привычкой, потому что это не сработало бы вообще. – Joe 14 December 2017 в 09:06

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

Похожие вопросы: