Как использовать программы пользователей, которые не установили их самих?

Я не уверен, что лучшая практика диктует в отношении настройки прав доступа к "групповым" и "другим" файлам.

Обычным подходом было бы 755, поэтому у группы и "других" есть разрешение на чтение и выполнение. Практически все в (например) /usr/bin установлено именно так.

Если я делюсь своим_файлом.sh и кто-то загружает его в свою систему, меняется ли UID на свой собственный? Зависит ли это от того, как файл будет передан (scp, git, http и т.д.)?

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

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

На локальной системе файл с разрешением на чтение может быть скопирован (поскольку он доступен для чтения), и копия будет иметь UID пользователя, сделавшего копию. Вы можете установить исполняемый файл, но не читаемый, но это не имеет смысла; файл должен быть исполняемым и читаемым, чтобы его можно было выполнять. Другими словами, если вы хотите, чтобы всем было разрешено использовать этот сценарий, вам нужно минимальное разрешение на чтение и выполнение.

1
23.09.2014, 12:10
1 ответ

от man bash :

   { list; }
          list  is  simply executed in the current shell environment.  list must be terminated with a newline or semicolon.
          This is known as a group command.  The return status is the exit status of list.  Note that unlike the  metachar‐
          acters  (  and  ), { and } are reserved words and must occur where a reserved word is permitted to be recognized.
          Since they do not cause a word break, they must be separated from list by whitespace or another shell metacharac‐
          ter.
-121--75100-

/lib/modules/$ (uname -r )/source должна быть символической ссылкой на исходное дерево ядра (если оно было установлено разумным образом).

Кроме этого

find / -type d -name "linux-3.14.0"

будет искать каталог дистрибутива ядра Linux 3.14.0 - тот, который вы получите при распаковке тарбола. Если это не удается,

find / -type d -name "linux-*"
find / -type f -name "Kbuild"

не должен давать вам слишком много ложных срабатываний.

Если требуется скомпилировать его, можно перенести источники на машину и сделать это с нуля, при условии, что он скомпилировал его со встроенным .config (опция CONFIG _ IKCONFIG ). Ее можно извлечь либо из /proc/config.gz (если она поддерживается ядром - см. параметр CONFIG _ IKCONFIG _ PROC ), либо с помощью сценария scripts/extract-ikconfig из исходного каталога ядра.

Кроме того, не вызывает ли вопрос у вашего коллеги?

-121--133913-

Префикс , на который ссылается руководство, является переменной среды WINEPREFIX . Он используется для указания вина в каталог конфигурации, который он должен использовать. Можно сохранить отдельную 32-разрядную конфигурацию для основного пользователя, указав WINEPREFIX на каталог, отличный от $ HOME/.wine , например,

export WINEPREFIX=$HOME/.wine-32/
export WINEARCH=win32
winecfg

Обратите внимание, что это создает совершенно отдельную среду Wine, поэтому любые приложения, которые вы хотите использовать с 32-разрядной средой, должны быть установлены в ней отдельно.

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

1
27.01.2020, 23:52

Теги

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