Как создать приложение без привилегий sudo?

Я уже достаточно решительно решил для своих нужд. Я немного изменил сценарий /etc/grub.d/30_os-prober:

начал с строки 150 (просто добавьте переменную и условие, чтобы проверить, были ли уже найдены Windows 7):


wubi=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

изменить на:


wubi=
windows7_found=

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  # Mi-La patch to add Windows 7 only once
  if [ "${LONGNAME}" = "Windows 7 (loader)" ]; then
    if [ "${windows7_found}" = yes ]; then
      echo "Skipping duplicated entry for ${LONGNAME} on ${DEVICE}." >&2
      continue
    else
      windows7_found=yes
    fi
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

Должно работать по крайней мере до тех пор, пока grub не будет обновлен. Наслаждайтесь.

EDIT: Ubuntu 12.10

30_os-prober немного изменился, но используя то же самое, если после следующих строк:


  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

работает хорошо.

8
задан 13 August 2010 в 18:42

30 ответов

Если ваши пользователи используют

./configure --prefix=/home/user/opt/

Или для проектов cmake [! ​​d1]

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

Это установит программу в этом префиксе (вместо стандартного / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

/home/user/opt/bin/program

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить /home/user/opt/bin в переменную среды пути, отредактируйте файл .profile и добавьте следующую строку:

export PATH=/home/user/opt/bin:$PATH

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

28
ответ дан 29 May 2018 в 12:48
  • 1
    Другие пользователи смогут использовать программы, установленные таким образом, если они задают полный путь, а разрешения устанавливаются соответствующим образом; и кажется, что по умолчанию umask разрешает это на моем рабочем столе. – Alistair Buxton 21 March 2011 в 07:07

Если ваши пользователи используют

./configure --prefix=/home/user/opt/

Или для проектов cmake [! ​​d1] cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

Это установит программу в этом префиксе (вместо стандартного / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

/home/user/opt/bin/program

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить /home/user/opt/bin в переменную среды пути, отредактируйте файл .profile и добавьте следующую строку:

export PATH=/home/user/opt/bin:$PATH

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

28
ответ дан 25 July 2018 в 23:17

Если ваши пользователи используют

./configure --prefix=/home/user/opt/

Или для проектов cmake [! ​​d1] cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

Это установит программу в этом префиксе (вместо стандартного / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

/home/user/opt/bin/program

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить /home/user/opt/bin в переменную среды пути, отредактируйте файл .profile и добавьте следующую строку:

export PATH=/home/user/opt/bin:$PATH

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

28
ответ дан 27 July 2018 в 03:47

Если ваши пользователи используют

./configure --prefix=/home/user/opt/

Или для проектов cmake [! ​​d1] cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

Это установит программу в этом префиксе (вместо стандартного / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

/home/user/opt/bin/program

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить /home/user/opt/bin в переменную среды пути, отредактируйте файл .profile и добавьте следующую строку:

export PATH=/home/user/opt/bin:$PATH

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

28
ответ дан 31 July 2018 в 12:01

Если ваши пользователи используют

  ./ configure --prefix = / home / user / opt /  

Или для проектов cmake [! ​​d7]

  cmake -D CMAKE_INSTALL_PREFIX: PATH = / home / user / opt / ../source/  

Это установит программу в этом префиксе (вместо значения по умолчанию / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

  / home / user / opt / bin / program  

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить / home / user / opt / bin в переменную среды пути, отредактировать файл .profile. и добавьте следующую строку:

  export PATH = / home / user / opt / bin: $ PATH  

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

28
ответ дан 2 August 2018 в 04:34

Если ваши пользователи используют

  ./ configure --prefix = / home / user / opt /  

Или для проектов cmake [! ​​d7]

  cmake -D CMAKE_INSTALL_PREFIX: PATH = / home / user / opt / ../source/  

Это установит программу в этом префиксе (вместо значения по умолчанию / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

  / home / user / opt / bin / program  

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить / home / user / opt / bin в переменную среды пути, отредактировать файл .profile. и добавьте следующую строку:

  export PATH = / home / user / opt / bin: $ PATH  

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

28
ответ дан 4 August 2018 в 21:09

Если ваши пользователи используют

  ./ configure --prefix = / home / user / opt /  

Или для проектов cmake [! ​​d7]

  cmake -D CMAKE_INSTALL_PREFIX: PATH = / home / user / opt / ../source/  

Это установит программу в этом префиксе (вместо значения по умолчанию / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

  / home / user / opt / bin / program  

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить / home / user / opt / bin в переменную среды пути, отредактировать файл .profile. и добавьте следующую строку:

  export PATH = / home / user / opt / bin: $ PATH  

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

28
ответ дан 6 August 2018 в 04:38

Если ваши пользователи используют

  ./ configure --prefix = / home / user / opt /  

Или для проектов cmake [! ​​d7]

  cmake -D CMAKE_INSTALL_PREFIX: PATH = / home / user / opt / ../source/  

Это установит программу в этом префиксе (вместо значения по умолчанию / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

  / home / user / opt / bin / program  

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить / home / user / opt / bin в переменную среды пути, отредактировать файл .profile. и добавьте следующую строку:

  export PATH = / home / user / opt / bin: $ PATH  

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

28
ответ дан 7 August 2018 в 22:48

Если ваши пользователи используют

  ./ configure --prefix = / home / user / opt /  

Или для проектов cmake [! ​​d7]

  cmake -D CMAKE_INSTALL_PREFIX: PATH = / home / user / opt / ../source/  

Это установит программу в этом префиксе (вместо значения по умолчанию / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

  / home / user / opt / bin / program  

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить / home / user / opt / bin в переменную среды пути, отредактировать файл .profile. и добавьте следующую строку:

  export PATH = / home / user / opt / bin: $ PATH  

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

28
ответ дан 10 August 2018 в 10:53

Если ваши пользователи используют

  ./ configure --prefix = / home / user / opt /  

Или для проектов cmake [! ​​d7]

  cmake -D CMAKE_INSTALL_PREFIX: PATH = / home / user / opt / ../source/  

Это установит программу в этом префиксе (вместо значения по умолчанию / usr / local /), и ваши пользователи должны иметь возможность запускать программу следующим образом:

  / home / user / opt / bin / program  

Если вы хотите, чтобы они могли запускать программы, просто используя имя (без полного пути), вам нужно добавить / home / user / opt / bin в переменную среды пути, отредактировать файл .profile. и добавьте следующую строку:

  export PATH = / home / user / opt / bin: $ PATH  

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

28
ответ дан 13 August 2018 в 17:28
  • 1
    Другие пользователи смогут использовать программы, установленные таким образом, если они задают полный путь, а разрешения устанавливаются соответствующим образом; и кажется, что по умолчанию umask разрешает это на моем рабочем столе. – Alistair Buxton 21 March 2011 в 07:07
  • 2

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

./configure и make работают всегда без прав sudo. make install обычно требует прав sudo, потому что он установит приложение в /usr/local или /usr (иногда /opt).

Однако, если вы измените префикс для пути установки (т.е. ./configure --prefix=~/usr/local) таким образом, что установка будет выполняться внутри дерева домашнего каталога пользователя, для make install не требуются права sudo.

7
ответ дан 29 May 2018 в 12:48
  • 1
    Я все еще думаю, что ваш ответ не полностью подкреплен. Почему ./configure и make работают всегда без sudo? Как я могу оправдать это тем, кто продолжает выполнять sudo make install, например? – Nikos Alexandris 21 November 2012 в 13:45

Добавив к тому, что сказал txwikinger, вы можете также проверить fakeroot, что дает возможность создавать пакеты .deb с dpkg без необходимости получения повышенных привилегий. Конечно, для их установки, как правило, нужен доступ sudo.

0
ответ дан 29 May 2018 в 12:48

Добавив к тому, что сказал txwikinger, вы можете также проверить fakeroot, что дает возможность создавать пакеты .deb с dpkg без необходимости получения повышенных привилегий. Конечно, для их установки, как правило, нужен доступ sudo.

0
ответ дан 25 July 2018 в 23:17

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

./configure и make работают всегда без прав sudo. make install обычно требует прав sudo, потому что он установит приложение в /usr/local или /usr (иногда /opt).

Однако, если вы измените префикс для пути установки (т.е. ./configure --prefix=~/usr/local) таким образом, что установка будет выполняться внутри дерева домашнего каталога пользователя, для make install не требуются права sudo.

7
ответ дан 25 July 2018 в 23:17
  • 1
    Я все еще думаю, что ваш ответ не полностью подкреплен. Почему ./configure и make работают всегда без sudo? Как я могу оправдать это тем, кто продолжает выполнять sudo make install, например? – Nikos Alexandris 21 November 2012 в 13:45

Добавив к тому, что сказал txwikinger, вы можете также проверить fakeroot, что дает возможность создавать пакеты .deb с dpkg без необходимости получения повышенных привилегий. Конечно, для их установки, как правило, нужен доступ sudo.

0
ответ дан 27 July 2018 в 03:47

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

./configure и make работают всегда без прав sudo. make install обычно требует прав sudo, потому что он установит приложение в /usr/local или /usr (иногда /opt).

Однако, если вы измените префикс для пути установки (т.е. ./configure --prefix=~/usr/local) таким образом, что установка будет выполняться внутри дерева домашнего каталога пользователя, для make install не требуются права sudo.

7
ответ дан 27 July 2018 в 03:47
  • 1
    Я все еще думаю, что ваш ответ не полностью подкреплен. Почему ./configure и make работают всегда без sudo? Как я могу оправдать это тем, кто продолжает выполнять sudo make install, например? – Nikos Alexandris 21 November 2012 в 13:45

Добавив к тому, что сказал txwikinger, вы можете также проверить fakeroot, что дает возможность создавать пакеты .deb с dpkg без необходимости получения повышенных привилегий. Конечно, для их установки, как правило, нужен доступ sudo.

0
ответ дан 31 July 2018 в 12:01

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

./configure и make работают всегда без прав sudo. make install обычно требует прав sudo, потому что он установит приложение в /usr/local или /usr (иногда /opt).

Однако, если вы измените префикс для пути установки (т.е. ./configure --prefix=~/usr/local) таким образом, что установка будет выполняться внутри дерева домашнего каталога пользователя, для make install не требуются права sudo.

7
ответ дан 31 July 2018 в 12:01
  • 1
    Я все еще думаю, что ваш ответ не полностью подкреплен. Почему ./configure и make работают всегда без sudo? Как я могу оправдать это тем, кто продолжает выполнять sudo make install, например? – Nikos Alexandris 21 November 2012 в 13:45

Добавив к тому, что сказал txwikinger , вы можете также проверить fakeroot , что дает возможность создавать пакеты .deb с помощью dpkg не требуя повышенных привилегий. Конечно, для их установки, как правило, требуется доступ к sudo.

0
ответ дан 2 August 2018 в 04:34

Пользователи могут создавать приложения без прав sudo.

./ configure и make [! ​​D1] работают всегда без прав sudo.

./ configure и , make install обычно требует прав sudo, потому что он установит приложение в / usr / local или / usr (иногда / opt ).

Однако, если вы измените префикс для пути установки (т.е. ./ configure --prefix = ~ / usr / local ) таким образом, чтобы установка будет выполняться внутри дерева домашнего каталога пользователя, для не требуется никаких прав sudo make install .

7
ответ дан 2 August 2018 в 04:34

Добавив к тому, что сказал txwikinger , вы можете также проверить fakeroot , что дает возможность создавать пакеты .deb с помощью dpkg не требуя повышенных привилегий. Конечно, для их установки, как правило, требуется доступ к sudo.

0
ответ дан 4 August 2018 в 21:09

Пользователи могут создавать приложения без прав sudo.

./ configure и make [! ​​D1] работают всегда без прав sudo.

./ configure и , make install обычно требует прав sudo, потому что он установит приложение в / usr / local или / usr (иногда / opt ).

Однако, если вы измените префикс для пути установки (т.е. ./ configure --prefix = ~ / usr / local ) таким образом, чтобы установка будет выполняться внутри дерева домашнего каталога пользователя, для не требуется никаких прав sudo make install .

7
ответ дан 4 August 2018 в 21:09

Добавив к тому, что сказал txwikinger , вы можете также проверить fakeroot , что дает возможность создавать пакеты .deb с помощью dpkg не требуя повышенных привилегий. Конечно, для их установки, как правило, требуется доступ к sudo.

0
ответ дан 6 August 2018 в 04:38

Пользователи могут создавать приложения без прав sudo.

./ configure и make [! ​​D1] работают всегда без прав sudo.

./ configure и , make install обычно требует прав sudo, потому что он установит приложение в / usr / local или / usr (иногда / opt ).

Однако, если вы измените префикс для пути установки (т.е. ./ configure --prefix = ~ / usr / local ) таким образом, чтобы установка будет выполняться внутри дерева домашнего каталога пользователя, для не требуется никаких прав sudo make install .

7
ответ дан 6 August 2018 в 04:38

Добавив к тому, что сказал txwikinger , вы можете также проверить fakeroot , что дает возможность создавать пакеты .deb с помощью dpkg не требуя повышенных привилегий. Конечно, для их установки, как правило, требуется доступ к sudo.

0
ответ дан 7 August 2018 в 22:48

Пользователи могут создавать приложения без прав sudo.

./ configure и make [! ​​D1] работают всегда без прав sudo.

./ configure и , make install обычно требует прав sudo, потому что он установит приложение в / usr / local или / usr (иногда / opt ).

Однако, если вы измените префикс для пути установки (т.е. ./ configure --prefix = ~ / usr / local ) таким образом, чтобы установка будет выполняться внутри дерева домашнего каталога пользователя, для не требуется никаких прав sudo make install .

7
ответ дан 7 August 2018 в 22:48

Добавив к тому, что сказал txwikinger , вы можете также проверить fakeroot , что дает возможность создавать пакеты .deb с помощью dpkg не требуя повышенных привилегий. Конечно, для их установки, как правило, требуется доступ к sudo.

0
ответ дан 10 August 2018 в 10:53

Пользователи могут создавать приложения без прав sudo.

./ configure и make [! ​​D1] работают всегда без прав sudo.

./ configure и , make install обычно требует прав sudo, потому что он установит приложение в / usr / local или / usr (иногда / opt ).

Однако, если вы измените префикс для пути установки (т.е. ./ configure --prefix = ~ / usr / local ) таким образом, чтобы установка будет выполняться внутри дерева домашнего каталога пользователя, для не требуется никаких прав sudo make install .

7
ответ дан 10 August 2018 в 10:53

Добавив к тому, что сказал txwikinger , вы можете также проверить fakeroot , что дает возможность создавать пакеты .deb с помощью dpkg не требуя повышенных привилегий. Конечно, для их установки, как правило, требуется доступ к sudo.

0
ответ дан 13 August 2018 в 17:28

Пользователи могут создавать приложения без прав sudo.

./ configure и make [! ​​D1] работают всегда без прав sudo.

./ configure и , make install обычно требует прав sudo, потому что он установит приложение в / usr / local или / usr (иногда / opt ).

Однако, если вы измените префикс для пути установки (т.е. ./ configure --prefix = ~ / usr / local ) таким образом, чтобы установка будет выполняться внутри дерева домашнего каталога пользователя, для не требуется никаких прав sudo make install .

7
ответ дан 13 August 2018 в 17:28
  • 1
    Я все еще думаю, что ваш ответ не полностью подкреплен. Почему ./ configure и делают работать всегда без sudo ? Как я могу оправдать это тем, кто продолжает выполнять sudo make install например? – Nikos Alexandris 21 November 2012 в 13:45

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

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