Когда вы запускаете nsupdate
для добавления записи, вы должны указать Время -До -Текущее значение (TTL ), чтобы указать максимальное время, в течение которого запись может кэшироваться любым распознавателем. DNS-сервер, прежде чем снова запрашивать у авторитетного DNS-сервера версию записи с датой от -до -. Это справедливо для всех типов записей. Значение TTL находится между именем и типом записи.
Если вы хотите указать TTL 7200 секунд (2 часа ), например:
$ sudo nsupdate
> update add _kerberos.EXAMPLE.COM 7200 URI 10 1 "krb5srv:m:tcp:kdc1.example.com"
Также обратите внимание на двойные кавычки вокруг строки.
Если ближайший к вам DNS-сервер является полномочным для вашей DNS-зоны, а запись используется только локально, то значение TTL может быть не очень важным, но его все же необходимо указать.
В файле исходного кода openssh -7.6p1readconf.c
мы видим, что проверка разрешений делегирована функцииsecure_permissions
:
if (flags & SSHCONF_CHECKPERM) {
struct stat sb;
if (fstat(fileno(f), &sb) == -1)
fatal("fstat %s: %s", filename, strerror(errno));
if (!secure_permissions(&sb, getuid()))
fatal("Bad owner or permissions on %s", filename);
}
Эта функция находится в misc.c
, и мы можем видеть, что она действительно явно применяет один член для каждой группы, если файл доступен для записи группой -:
int
secure_permissions(struct stat *st, uid_t uid)
{
if (!platform_sys_dir_uid(st->st_uid) && st->st_uid != uid)
return 0;
if ((st->st_mode & 002) != 0)
return 0;
if ((st->st_mode & 020) != 0) {
/* If the file is group-writable, the group in question must
* have exactly one member, namely the file's owner.
* (Zero-member groups are typically used by setgid
* binaries, and are unlikely to be suitable.)
*/
struct passwd *pw;
struct group *gr;
int members = 0;
gr = getgrgid(st->st_gid);
if (!gr)
return 0;
/* Check primary group memberships. */
while ((pw = getpwent()) != NULL) {
if (pw->pw_gid == gr->gr_gid) {
++members;
if (pw->pw_uid != uid)
return 0;
}
}
endpwent();
pw = getpwuid(st->st_uid);
if (!pw)
return 0;
/* Check supplementary group memberships. */
if (gr->gr_mem[0]) {
++members;
if (strcmp(pw->pw_name, gr->gr_mem[0]) ||
gr->gr_mem[1])
return 0;
}
if (!members)
return 0;
}
return 1;
}
Это связано с ssh. Ssh требует, чтобы файл ~/.ssh/config
был доступен для чтения только тому пользователю, на которого он влияет, и никому другому. Файл -с разрешением 664 или 644 по умолчанию используется в большинстве систем (rw -rw -r --или rw -r --r --). Вы можете контролировать это, установив umask.
git clone
использует ssh для клонирования репозитория, возможно, он использует некоторые вещи ssh -при инициализации, даже если клонирование выполняется с http (s ).
ссылки: